Как проверить форму с помощью Yup и Formik - PullRequest
0 голосов
/ 17 января 2020

Мне нужно проверить флажки, если они есть в DOM.

Это моя схема проверки. Таким образом, в зависимости от того, является ли какое-либо состояние истинным или ложным, я показываю либо флажок подтверждения1, либо подтверждения2. В настоящее время поля не показывают ошибки, и я не могу отправить форму.

 const validationSchema = yup.object().shape({
    confirm1: yup.boolean().notRequired()
    .when('confirm2', {
      is: (val) => val === true,
      then: yup.boolean().required('Field must be checked'),
      otherwise: yup.boolean().notRequired()
    }),
    confirm2: yup.boolean().notRequired()
    .when('confirm1', {
      is: (val) => val === true,
      then: yup.boolean().required('Field must be checked'),
      otherwise: yup.boolean().notRequired()
    })
  }, ['confirm1', 'confirm2'])

1 Ответ

0 голосов
/ 17 января 2020

Так что я нашел решение для этого, я только что изменил его, и он работал как ожидалось

confirm1: yup.boolean().notRequired()
  .when('confirm2', {
     is: (val) => val !== true,
     then: yup.boolean().oneOf([true], 'Field must be checked'),
     otherwise: yup.boolean().required()
  }),
confirm1: yup.boolean().notRequired()
    .when('confirm2', {
      is: (val) => val !== true,
      then: yup.boolean().oneOf([true], 'Field must be checked'),
      otherwise: yup.boolean().required()
    }),
...