我正在尝试为对象定义Yup验证-如果将已定义的同级设置为 true ,则必须输入 object 类型的字段,否则不需要
示例:
const { object, string, number, date, boolean } = require('yup')
const contactSchema = object({
isBig: boolean(),
count: number()
.when('isBig', {
is: true, // alternatively: (val) => val == true
then: number().min(5),
otherwise: number().min(0),
}),
complexOne: object({
simpleOne: string(),
})
.when('isBig', {
is: true,
then: object().required(),
otherwise: object(),
})
})
该对象已传递给验证:
{
isBig: true,
count: -1,
}
如您所见,我有意不通过complexOne
,因为我希望Yup显示错误。 count 的验证正确进行-如果该值小于0并且 isBig 设置为 true ,Yup将正确显示错误消息ValidationError: count must be greater than or equal to 5
不幸的是,它完全忽略了 complexOne 字段的条件验证集。 yup不支持when
的对象类型,或者我做错了事。
感谢您的帮助