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

调用Yup Schema的validate()时出现“Required field”错误的原因

问题原因分析

你遇到的问题核心很明确:

  • 你调用userSchema.validate()时没有传入任何待校验的数据,Yup默认会校验一个空对象{}。
  • 你的Schema里firstname、lastname、password都标记为required(),空对象里完全没有这些字段,自然触发必填校验错误——报错里只显示password是因为Yup默认返回首个校验失败的字段,但实际上其他必填项也不符合规则。
  • 当你把所有required()换成optional()后,所有字段都允许缺失,空对象完全符合校验规则,所以错误就消失了。

正确用法

调用validate方法时必须传入待校验的用户数据对象,示例如下:

// 传入符合规则的用户数据进行校验
userSchema.validate({
  firstname: 'Gabriel',
  lastname: 'Smith',
  password: 'abc123'
})
.then(validData => {
  console.log('校验通过', validData);
})
.catch(err => {
  console.error('校验失败', err.errors);
});

内容的提问来源于stack exchange,提问作者Gabriel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 14:55:55