数组验证
Yup 可以对数组类型进行验证,支持数组长度、元素类型及自定义规则。
导入方式
js
import { array, object, string, number } from 'yup';基本数组验证
js
const schema = array().of(string().required()).min(1, "至少有一个元素");array():定义数组类型of(schema):数组中的每个元素必须符合指定 Schemamin(n, message)/max(n, message):限制数组长度
数组中对象验证
js
const schema = array().of(
object({
name: string().required(),
age: number().positive().integer()
})
);- 数组元素可以是对象
- 对象内部可以使用任意 Yup 类型验证
自定义数组验证
js
const schema = array()
.of(number())
.test('sum-check', '数组总和必须大于10', (arr) => {
return arr.reduce((sum, val) => sum + val, 0) > 10;
});test(name, message, fn):自定义验证逻辑arr是当前数组值
小结
array().of(schema)定义数组元素类型- 可以限制长度、使用嵌套对象、添加自定义规则
- 常用于表单中多选、列表、动态表格等场景