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

人气:233 发布:2023-01-03 标签: formik yup

问题描述

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

interface FormFields {
  groups: string[];
}

我正在尝试传递一个YUP架构来验证上面的内容:它可以是空数组(必须定义),但也可以包含字符串。

以下选项不起作用:

const schema = Yup.object({
  groups: Yup.array().defined()
}).defined();

我哪里错了?

推荐答案

我发现空数组是真的。并在最终找到YUP文档here之后。我使用了Yup.array()

.min(num, message)方法
const validationSchema = Yup.object().shape({
  stringArray: Yup.array().min(1, messageHere);
});

您还可以使用array().of()

检查数组的值是否包含字符串
const validationSchema = Yup.object().shape({
  stringArray: Yup.array().of(Yup.string());
});

21