Как проверить необязательный файл с yup - PullRequest
0 голосов
/ 18 февраля 2019

Я использую yup с formik для проверок.Я хочу проверить необязательное поле с помощью yup.Здесь test является необязательным полем, но когда пользователь входит, мы блокируем его, чтобы ввести некоторые специальные символы.когда пользователь ничего не вводил, он также выполняет проверку (эта проверка не требуется, пока пользователь не введет что-либо).Может кто-нибудь помочь мне, спасибо заранее

   const validationSchema = function (values) {
    return Yup.object().shape({
       test: Yup.string()
      .matches(/^[^<&>`#]+$/,'test should not contain `, &, #, <, > \n')
    })
  }

1 Ответ

0 голосов
/ 18 февраля 2019

Сочетание errors.yourFieldName и touched.yourFieldName решает вашу проблему:

Поэтому, если имя вашего поля ввода test, чтобы показать / скрыть ошибки:

{errors.test && touched.test ? {errors.test}: 'Valid form'}

и чтобы включить / отключить кнопку отправки:

<button disabled={touched.test && (!isValid || isSubmitting)}>

Я создал простую демонстрацию, чтобы проиллюстрировать это здесь https://codesandbox.io/s/q8vz32mpw

...