You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 23:31:04