簡體   English   中英

是的驗證沒有顯示正確的消息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM