【发布时间】:2020-11-07 16:53:51
【问题描述】:
我有 3 个默认情况下不需要的字段。但是,该规则要求,如果提供了 3 个字段中的任何一个,那么所有 3 个字段都将是必需的。
示例 field_1、field_2 和 field_3
validataionSchema = Yup.object({
title: Yup.string().max(10, "Max character exceeded").required("This field is required"),
field_1: Yup.string().max(32, "Max character exceeded"),
field_2: Yup.string().max(32, "Max character exceeded"),
field_3: Yup.string().max(32, "Max character exceeded"),
})
我试过了
validataionSchema = Yup.object({
title: Yup.string().max(10, "Max character exceeded").required("This field is required"),
field_1: Yup.string().max(15, "Max character exceeded")
.when(['field_2', 'field_3'], {
is: (field_2, field_3) => {
console.log("* field_2, field_3", field_2, field_3)
return true
},
then: Yup.string().required("This field is required")
}),
field_2: Yup.string().max(64, "Max character exceeded")
.when(['field_1', 'field_3'], {
is: (field_1, field_3) => {
console.log("** field_1, field_3", field_1, field_3)
return true
},
then: Yup.string().required("This field is required")
}),
field_3: Yup.string().max(64, "Max character exceeded")
.when(['field_1', 'field_2'], {
is: (field_1, field_2) => {
console.log("*** field_1, field_2", field_1, field_2)
return true
},
then: Yup.string().required("This field is required")
}),
})
但是我得到Error: Cyclic dependency, node was:"field_2"
【问题讨论】:
标签: javascript reactjs forms formik yup