web-dev-qa-db-ja.com

yup検証は文字列または文字列の配列です

フィールドが文字列または文字列の配列のどちらかであることを検証したいと思います。

これは 最小限の障害の例 Formikを使用するが実際にはYUPを使用してサーバー側の検証をしています。

  {
    email: yup
      .mixed()
      .oneOf([yup.array().of(yup.string()), yup.string()])
      .nullable()
  }
 _
10
david_adler

David Adlerの解決策は私のために働くことです。

これがTSベースのバリアントです。

  from: Yup.lazy<string | string[]>(from => {
    return Array.isArray(from)
      ? Yup.array()
        .of(PathnameValidator.required())
        .required()
      : PathnameValidator.required();
  }),
 _
1

このYUPシンプル検証は、フォームにマルチセレクトフィールドが含まれており、このフィールドを必須で、少なくとも1つのオプションを選択する必要があります。

 selectOptions: array()
         .min(1, "You can't leave this blank.")
         .required("You can't leave this blank.")
         .nullable()
 _
0
Ajay Kumar