[英]Validation with Yup doesn't show the correct message
我使用燁和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() 函數:
numberField: Yup.number().typeError(numberErrorMessage).required(requiredErrorMessage),
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.