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