用Yup验证未显示正确的消息

时间:2020-09-08 13:52:30

标签: javascript reactjs validation formik yup

我正在使用Yup和Formik来验证某些字段。

其中一个必须是数字,所以它是这样做的:

import * as Yup from 'yup';

...

const requiredErrorMessage = 'This field is required';
const numberErrorMessage = 'This field is must be numerical';

 const validationSchema = Yup.object({
      anotherField: Yup.string().required(requiredErrorMessage),
      numberField: Yup.number(numberErrorMessage).required(requiredErrorMessage),
 });

因此,如果引入的字符与数字不同,我希望它显示消息“此字段必须为数字”。

但事实并非如此。如果我在字段中写“ a”,则消息是:”价格必须为number类型,但最终值为:NaN(从值"a"开始)。”

为什么显示不同的消息?

1 个答案:

答案 0 :(得分:1)

对于数字类型的自定义消息,您应该调用typeError()函数:

X<sub>Y</sub>