簡體   English   中英

YUP 驗證期間出錯“無法讀取未定義的屬性‘長度’”

[英]Error during YUP validation “Cannot read property 'length' of undefined”

我得到以下代碼塊:

 const schema = useMemo(
    () =>
      yup.object().shape({
        name: yup
          .string()
          .trim()
          .required("Missing name")
          .max(40, "Too long"),
        template: yup
          .string()
          .trim()
          .max(2000, "Too long")
          .matches(/^https?:\/\//, "Invalid protocol")
          .required("Missing template")
          .test("variablesUsage", "Missing vars", function (
            value
          ) {
            return vars.some(v => value.includes(`{${v}}`))
          }),
        enabled: yup.boolean(),
      }),
    [message, vars]
  )

問題是每次我在“名稱”字段中輸入內容時,都會在控制台中收到以下錯誤:“未捕獲(承諾中)TypeError:無法讀取未定義的屬性'長度'”

如果我從“模板”中刪除 .test,它工作正常,但是我找不到這個錯誤的根本原因。

基本上,在.test中,有一些特定的關鍵字,這些關鍵字中至少有1個必須出現在“模板”中

似乎錯誤是由這一行引起的

return vars.some(v => value.includes(`{${v}}`))

我添加了以下行:

if (value == null) {return false;}

它正在工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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