如何解决是的验证——确保一个数组至少包含一个项目
{
array: ["1","4"]
}
但我想给它添加一个 yup 验证——如果数组是空的——那么数组中至少有一项
我已经尝试过类似的方法 - 但它不起作用
myArray: yup.array().min(1). required("at least one item needs to be here")
空数组总是真实的吗? Yup: Validating Array of Strings That Can Be Empty
但是这个沙箱似乎有效? https://codesandbox.io/s/serene-khorana-3pjmq?file=/src/index.js
https://codesandbox.io/s/lively-rgb-b2sct
这是 formik 表单框架的工作 - 带有复选框 - 显示 - 但是当未选择复选框时,又名值是一个空数组 - 应该显示错误 - 但它没有?
解决方法
您所做的已经正确且符合预期。我不确定你有什么困惑。
如果代码是:
import "./styles.css";
//import { object,array } from "yup";
import * as yup from "yup";
const mySchema = yup.object({
myArray: yup.array().min(1,"at least 1").required("required")
});
console.log("[]",mySchema.isValidSync({ myArray: [] }));
console.log(
'["John"]',mySchema.isValidSync({
myArray: ["John"]
})
);
console.log(
'["John","Doe"]',mySchema.isValidSync({
myArray: ["John","Doe"]
})
);
它返回:
[] false
["John"] true
["John","Doe"] true
如果我将行更改为
myArray: yup.array().min(2,"at least 2").required("required")
然后它返回:
[] false
["John"] false
["John","Doe"] true
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。