是的(使用formik和react)-无法验证数组长度

时间:2020-10-22 19:30:06

标签: reactjs formik yup

是Yup的新手,我不知道如何验证数组是否为空。

我正在使用react + formik + yup + material-ui

这是我创建的示例:

https://codesandbox.io/s/new-fire-29onf?file=/src/App.js

我在validationSchema中尝试仅使用所需的方法:

validationSchema={Yup.object({ permissions : Yup.array().required('permission cant be empty') })}

我尝试使用如下测试方法来添加功能:

validationSchema={Yup.object({ permission: Yup.array().test ('notEmptyArr', 'array is empty', (value) =>{ console.log(value); return value.length > 0; }) })}

我也试图像这样向数组添加方法:

Yup.addMethod(Yup.array, "notEmpty", function(message) { return this.test("notEmpty", message, function(arr) { return Boolean( arr.length > 0 ); }); });

但是这些都不适合我:(

如果删除验证,我会看到value.permission确实是一个数组,带有值(如果已选择)

我在做什么错了?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用.min()

validationSchema={Yup.object({
    permissions: Yup.array().min(1)
})}