【发布时间】:2020-03-05 07:50:21
【问题描述】:
我正在尝试为表单字段/选择实现一个非常基本的验证。验证架构:
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()
}),
我想要做的:如果provider.hasReserve 是true,则只需要/验证reserveVehicle。否则,不需要数字。
我收到此错误:
“reserveVehicle 必须是
number类型,但最终值为:NaN(从值NaN转换)。”
这是有道理的(有点),因为null 不是数字。但正如我试图告诉它不应该要求它一样,我认为它不应该尝试评估它。
我错过了Yup 的任何关键概念吗?
【问题讨论】:
-
我认为您的
otherwise可能是导致您出现问题的原因,请尝试将.nullable()添加到该问题中。
标签: reactjs validation yup