用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"开始)。”

为什么显示不同的消息?

解决方法

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

X<sub>Y</sub>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...