是的:验证可以为空的字符串数组

Sam*_*mmy 1 yup formik

我有以下作为 Formik 的表单字段类型:

interface FormFields {
  groups: string[];
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试传递一个 Yup 模式来验证上述内容:它可以是一个空数组(必须定义)但也可以包含字符串。

以下不起作用:

const schema = Yup.object({
  groups: Yup.array().defined()
}).defined();
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

小智 5

我发现空数组是真的。在终于在这里找到 yup 文档之后。我用的.min(num, message)方法Yup.array()

const validationSchema = Yup.object().shape({
  stringArray: Yup.array().min(1, messageHere);
});
Run Code Online (Sandbox Code Playgroud)

您还可以使用以下命令检查数组的值是否包含字符串 array().of()

const validationSchema = Yup.object().shape({
  stringArray: Yup.array().of(Yup.string());
});
Run Code Online (Sandbox Code Playgroud)


Tan*_*Raj 1

这是我的工作示例。经测试

let yup = require('yup')

const tSchema = yup.object().shape({
  groups: yup.array().notRequired(),
})

const u = tSchema.cast({
  groups: [],
  
})

console.log(u)
Run Code Online (Sandbox Code Playgroud)