поле обязательно для заполнения на основе значения другого поля - formik, yup - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть форма реагирующей формы, где есть поле выбора, скажем, поле имеет значения 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');
   }
  }),

но этот код не работает.

Теперь, какие изменения я могу внести, чтобы сделать эту работу так, как я хочу?

1 Ответ

0 голосов
/ 19 июля 2019

Я знаю, что немного поздно, но вы можете попробовать это

chooseSubType: yup.string().when('chooseAlphabet', {
  is: 'B',
  then: schema => schema,
  otherwise: yup.string().when('type', {
    is: 'D',
    then: yup.string().required('field required.')
  })
})
...