Два условия, когда в Yup в React

#reactjs #formik #yup

#reactjs #formik #ага

Вопрос:

Я хотел поставить два условия, которые, если его isProduct или isBox истинно, тогда product_id должны быть обязательными. Я сделал этот код ниже, и он не работает

  product_id: yup.string().when(['isProduct', 'isBox'], {
    is: true,
    then: yup.string().required('Select product'),
  }),
  

Ответ №1:

В настоящее время вы проверяете, являются ли оба поля true, чтобы проверить, является ли какое-либо из полей true, вам необходимо переопределить свойство is для функции, возвращающей логическое значение:

 product_id: yup.string().when(['isProduct', 'isBox'], {
  is: (isProduct, isBox) => isProduct || isBox,
  then: yup.string().required('Select product'),
}),
  

Ссылка: https://github.com/jquense/yup#mixedwhenkeys-string—arraystring-builder-object—value-schema-schema-schema

Комментарии:

1. Конечно, только что опубликовал.

2. Привет, ты удалил свой ответ там?

3. @Joseph да, я сделал, я считаю, что другой ответ соответствовал вашим требованиям, и я был занят другими вещами.

4. он еще не получил правильного ответа. возможно, вы захотите ответить на него

5. Конечно, публикуйте сейчас, пожалуйста, проголосуйте и примите, если это сработает!