Formik + Yup не проверяет ввод, если не тронут - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь использовать Formik + Yup для проверки моей формы, но в настоящее время, если я коснусь одного поля, а затем попытаюсь отправить, поле с минимальной длиной будет проверено и не позволит мне отправить.

Следуя моей песочнице кода (https://codesandbox.io/s/focused-bardeen-5fiuz),), я хочу, чтобы пользователь мог отправить форму, если он просто изменил поле firstName, но без ввода чего-либо для поля country. Iпробовал оба параметра .notRequired() и .nullable(true), но ничего не получилось. Есть идеи, как этого добиться?

1 Ответ

1 голос
/ 02 июля 2019

Вы можете попробовать использовать пользовательскую проверку с test.Рабочий пример здесь https://codesandbox.io/s/laughing-dust-f9wet

country: yup
      .string()
      .test("isValidCode", "Country must be 2-letters (ISO codes).", value => {
        if (!value) {
          return true;
        }
        return value.toString().length === 2;
      })
...