gpt4 book ai didi

javascript - 来自 Yup 的自定义验证的错误消息不会消失

转载 作者:行者123 更新时间:2023-12-03 07:11:09 25 4
gpt4 key购买 nike

作为注册过程的一部分,我想使用来自 Yup 的自定义验证来检查任何重复的电子邮件。 :

validationSchema={yup.object().shape({
email: yup
.string()
.email()
.test({
name: 'duplicate-email-check',
params: 'value',
message: 'Duplicate email already exists',
test: async (value) => {
firebase
.auth()
.fetchSignInMethodsForEmail(value)
.then(result => {
if (result === "password") {
return false
} else {
return true
}
})
.catch(err => console.log(err))
}
})
.required(),
})}

我正在使用 fetchSignInMethodsForEmail获取具有相同电子邮件的任何类型的帐户,如果存在,将抛出验证错误消息。我在 mixed().text() 之后建模架构,但问题是即使没有重复的电子邮件,错误消息“重复的电子邮件已经存在”一旦显示就不会消失。

最佳答案

这部分代码不返回返回 bool 值的 Promise test

test: async (value) => { // Notice this, adding curly braces will require you to put a return statement
firebase
.auth()
.fetchSignInMethodsForEmail(value)
.then(result => {
if (result === "password") {
return false
} else {
return true
}
})
.catch(err => console.log(err))
}

您可以将代码更改为:

test: async (value) => { // Notice this, adding curly braces will require you to put a return statement
return firebase // Notice I added the return statement
.auth()
.fetchSignInMethodsForEmail(value)
.then(result => {
if (result === "password") {
return false
} else {
return true
}
})
.catch(err => console.log(err))
}

关于javascript - 来自 Yup 的自定义验证的错误消息不会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59797505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com