Javascript Yup验证不需要';t显示正确的消息

Javascript Yup验证不需要';t显示正确的消息,javascript,reactjs,validation,formik,yup,Javascript,Reactjs,Validation,Formik,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({ anotherFiel

我正在使用和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”,则消息如下:“价格必须是
数字
类型,但最终值为:
NaN
(从值
“a”
)转换而来)。”


为什么会显示不同的消息?

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

numberField:Yup.number().typeError(numberErrorMessage).required(requireErrorMessage),