验证使用 Yup 来检查数组长度 --> 如果长度 === 1 则出错

Mau*_*del 6 javascript reactjs yup

我有以下对象:

{
    array: [1]
}
Run Code Online (Sandbox Code Playgroud)

以及以下代码:

myArray: Yup.array().of(
    Yup.object().shape({
        name: Yup.string().max(255).required().label('Name')
    })
)
Run Code Online (Sandbox Code Playgroud)

现在我检查名称是必需的,我需要检查是否myArray必须length === 1返回错误。

Fra*_*ion 6

mixed.test(options: object)如果您只想测试,可以使用length === 1

myArray: array()
  .of(
    object().shape({
      name: string()
        .max(255)
        .required()
        .label("Name")
    })
  )
  .test({
    message: 'The error message if length === 1',
    test: arr => arr.length !== 1,
  })
Run Code Online (Sandbox Code Playgroud)

演示:

编辑 Holy-http-e3y4e

array.min(limit: number | Ref, message?: string | function)如果你想测试length === 0 | 1

myArray: Yup.array()
  .of(
    Yup.object().shape({
      name:Yup.string()
        .max(255)
        .required()
        .label('Name')
      })
  )
  .min(2, 'The error message if length === 0 | 1')
Run Code Online (Sandbox Code Playgroud)

演示:

编辑happy-sea-dds1e