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

问题描述

是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)
})}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...