我试图为表单字段/select实现一个非常基本的验证。验证模式:
vehicleProvider: Yup.object() // This is an object which is null by default
.required('formvalidation.required.message')
.nullable(),
reserveVehicle: Yup.number().when('vehicleProvider', { // This is a number which is null by default
is: provider => provider?.hasReserve,
then: Yup.number()
.required('formvalidation.required.message')
.nullable(),
otherwise: Yup.number().notRequired()
}),我想做的是:只有当reserveVehicle是true时才需要/验证true。否则,不需要电话号码。我知道这个错误:
"reserveVehicle必须是
number类型,但最终值是:NaN(从值NaN中强制转换)。
这是有意义的,因为null不是一个数字。但当我试图告诉它,它不应该是必需的,在我看来,它不应该试图评估它。
我错过了Yup的关键概念吗?
发布于 2022-10-12 18:27:19
使用这段代码.transform((值) => (isNaN(值)?0: value))
age: yup
.number()
.transform((value) => (isNaN(value) || value === null || value === undefined) ? 0 : value)
.required()
.label("Age"),https://stackoverflow.com/questions/58770630
复制相似问题