React中使用Yup表单验证出现field.resolve is not a function错误求助
解决Yup表单验证中的
field.resolve is not a function错误 你的代码问题出在没有调用required方法——Yup里的required是一个需要执行的方法(要加括号()),而不是直接引用的属性。
直接写.required会把函数本身传递给Schema,而非执行该方法后返回的验证规则对象,这就导致Yup内部无法正确解析验证逻辑,从而抛出field.resolve is not a function错误。
修正后的代码如下:
const registrationSchema = yup.object().shape({ username: yup.string().required(), email: yup.string().email().required(), password: yup.string().min(0).max(10).required(), }); const formData = { username: registerUsername, email: registerEmail, password: registerPassword, }; const answer = registrationSchema.isValid(formData).then(function (valid) { console.log("works"); });
额外提一句:min(0)其实没什么实际作用,字符串默认允许长度为0,要是想做密码长度限制,建议改成min(6)这类符合实际需求的数值。
内容的提问来源于stack exchange,提问作者Joseph Walsh
相关产品推荐
相关产品推荐

