如何解决用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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。