主题
对象与嵌套
Yup 支持对象类型验证,可以对对象的每个字段进行独立校验,也支持嵌套对象的验证。
定义对象 Schema
js
import * as yup from "yup";
const userSchema = yup.object({
name: yup.string().required("姓名不能为空"),
age: yup.number().required("年龄不能为空").positive().integer(),
email: yup.string().email("邮箱格式不正确")
});
yup.object({...})
:定义对象模式- 对象内部每个字段都可以使用 Yup 的各种类型和规则
嵌套对象
js
const schema = yup.object({
user: yup.object({
name: yup.string().required(),
age: yup.number().positive()
}).required()
});
- 嵌套对象使用
yup.object()
- 可以递归定义多层嵌套
嵌套数组中的对象
js
const schema = yup.object({
users: yup.array().of(
yup.object({
name: yup.string().required(),
age: yup.number().positive()
})
)
});
yup.array().of(schema)
:数组中的每个元素都必须符合指定 Schema- 常用于表单中动态添加多条记录
小结
yup.object()
定义对象模式- 支持嵌套对象和数组
- 每个字段可以单独定义验证规则