如何访问对象属性错误?我有这个数组:
cars: array()
.of(
object({
brandId: number().positive().required(),
name: string(),
}),
)
如果用户选择特定品牌,比如说品牌 A,那么我想将“名称”属性设为必需。
通常它是一个带有复选框的表单,每个复选框都有自己的输入。因此,对于复选框一,我有品牌 A,当我检查带有品牌 A 的复选框时,我希望该复选框的输入是必需的,但其他复选框的其他输入不应是必需的。如何实现这一点,如何单独验证每个对象?
如果
when
等于例如,您可以使用 brandId
设置条件3
,name
属性成为必需的。
https://codesandbox.io/s/yup-playground-forked-3d3t6c?file=/src/index.js
import * as yup from "yup";
const schema = yup.object().shape({
cars: yup.array().of(yup.object({
brandId: yup.number().positive().required(),
name: yup.mixed().when('brandId', {
is: 3,
then: yup.string().required(),
})
})),
});
const obj1 = { cars: [{ brandId: 5 }] }; // valid
const obj2 = { cars: [{ brandId: 3 }] }; // invalid, name is required