Отправка ошибок валидации через форму Formik

Когда нам нужно проверить форму Formik (часто с помощью Yup), мы можем использовать следующий метод: validateForm.
Он возвращает обещание, поэтому мы должны проверить, разрешится оно или нет.
Однако ошибки валидации отправляются непосредственно внутрь обещания в качестве аргумента и не перехватываются. Поэтому обещание всегда разрешается в этом случае.

Чтобы передать ошибки проверки, мы должны передать их в качестве аргумента самого обещания.

  formik.validateForm({...})
    .then((errors) => submit(formik, values, errors))
Вход в полноэкранный режим Выйти из полноэкранного режима

Затем можно проверить ошибки и написать логику в методе submit.

const submit = (formik, values, errors) => {...}
Вход в полноэкранный режим Выход из полноэкранного режима

Бонус: вот типы (для пользователей TS) для 3 аргументов выше:

formik: FormikContextType<FormikValues>
values: FormikValues
errors: FormikErrors<FormikValues>
Войти в полноэкранный режим Выйти из полноэкранного режима

Спасибо, что прочитали, и давайте общаться в Twitter!

Оцените статью
devanswers.ru
Добавить комментарий