是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确实是一个数组,带有值(如果已选择)
我在做什么错了?
谢谢
答案 0 :(得分:1)
您可以使用.min()
:
validationSchema={Yup.object({
permissions: Yup.array().min(1)
})}