Обязательное поле на основе значения другого поля - formik, yup
У меня есть форма реагирования, где есть поле выбора, скажем, поле имеет значения A,B,C,D,E,F.
скажем, другое поле, ChooseSubType, появляется, только если я выбираю B или D, и это поле будет обязательным, только когда оно появляется, а не до этого.
Теперь, как мне заставить это работать?
вот код для первого поля, т.е. выберите поле
chooseAlphabet: Yup.string().required('field required'),
chooseSubType : Yup.string().when('chooseAlphabet',
('chooseAlphabet',schema)=>{
console.log('value business : ',chooseAlphabet);
if(chooseAlphabet === "B"||"D"){
return schema;
}else{
return schema.required('field required');
}
}),
но этот код не работает.
Теперь, какие изменения я делаю здесь, чтобы сделать эту работу, как я хочу?
0 ответов
Я знаю, что уже немного поздно, но ты можешь попробовать это
chooseSubType: yup.string().when('chooseAlphabet', {
is: 'B',
then: schema => schema,
otherwise: yup.string().when('type', {
is: 'D',
then: yup.string().required('field required.')
})
})
Вы можете использовать тот же код только для уточнения, которое вам нужно добавить, пожалуйста, проверьте код ниже.
chooseAlphabet: Yup.string().required('field required'),
chooseSubType : Yup.string().when('chooseAlphabet',
(chooseAlphabet,schema)=>{
console.log('value business : ',chooseAlphabet);
if(chooseAlphabet === "B"||"D"){
return schema;
}else{
return schema.required('field required');
}
}),
Для вас схема 2-го параметра не определена.
chooseAlphabet: Yup.string().required('field required'),
chooseSubType : Yup.string().when('chooseAlphabet',
(chooseAlphabetValue)=>{
console.log('value business : ',chooseAlphabetValue);
if(chooseAlphabetValue=== "B"||"D"){
return Yup.string();
}else{
return Yup.string().required('field required');
}
}),