我正在尝试使用Yup验证数组中的数据。例如,这是我的initialValue:
{name:'',extra:[]}
动态渲染表单字段后,initialValue将变为:
{name:'',extra:[{label:'age',value:'',required:true}]}
我想设置验证方案以仅在'required'为true时验证对象中的'value'。
我使用这些数据来模拟情况:
{name:'john',extra:[{label:'age',value:'',required:true}]};
我尝试过的方法:
const validationschema = yup.object().shape({
name: yup.string().required(),
extra: yup.lazy((value,index)=>{
return yup.mixed().required();
})
})
用户提交时应该出错,因为age的“值”为空。 我不确定为什么,我不能真正验证“价值”。如何更改验证模式,以便可以验证“值”?
答案 0 :(得分:0)
尝试通过以下方式进行验证:
name: yup.string().required(),
extra: yup.array()
.of(
yup.object().shape({
required: yup.bool(),
value: yup.object().when('required', {
is: true,
then: yup.string().required('Please, select position')
}),
})
)
您应该在此处检查字段required
。如果true
可以验证它。