reactjs - 是的。当 : "` NaN` (cast from the value `NaN` )"

标签 reactjs validation yup

我正在尝试为表单字段/选择实现一个非常基本的验证。验证架构:

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如果 provider.hasReservetrue .否则,不需要号码。
我收到此错误:

"reserveVehicle must be a number type, but the final value was: NaN (cast from the value NaN)."



这是有道理的(有点)因为,好吧 null不是数字。但是当我试图告诉它不应该要求它时,在我看来它不应该尝试评估它。

我是否错过了 Yup 的任何关键概念? ?

最佳答案

您应该使用 类型错误

这是我的代码中的一个示例:

amount: Yup.number()
                    .typeError('Amount must be a number')
                    .required("Please provide plan cost.")
                    .min(0, "Too little")
                    .max(5000, 'Very costly!')

关于reactjs - 是的。当 : "` NaN` (cast from the value `NaN` )",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58770630/

相关文章:

javascript - ReactJS : Failed to load plugin 'testing-library' declared in 'package.json : Cannot find module ' ./eslint-utils'

javascript - 在 React 和 Redux 应用程序中渲染大型表会导致性能问题

javascript - 如何将类型分配给 Typescript 中的解构变量?

java - 在哪一层实现 validator dao 响应?

javascript - 如何压缩 Yup "when"验证

reactjs - 如何将 React 中的 localStorage 代码转换为 React Native 中的 AsyncStorage?

c# - 正则表达式号码电话

C - 为什么这个循环会重复,即使使用 getchar() 给出了正确的输入来打破它?

javascript - 使用 Yup 检查数组长度的验证 --> 如果长度 === 1 则出错

javascript - 如何使用带有 useFieldArray 的 react-hook-form 对动态表单进行 yup 验证