Триггер при касании с Formik: улучшение пользовательского опыта в React Forms

“Триггер при касании с Formik: улучшение пользовательского опыта в React Forms”

В современных веб-приложениях крайне важно обеспечить удобство взаимодействия с пользователем. Когда дело доходит до обработки форм в React, Formik — популярная библиотека, которая упрощает этот процесс. В этой статье мы рассмотрим различные методы запуска проверки формы при касании с помощью Formik. Мы обсудим примеры кода для каждого метода, которые помогут вам реализовать их в ваших проектах React.

Методы запуска проверки формы при касании:

  1. Событие onBlur:
    Событие onBlur срабатывает, когда поле формы теряет фокус. Используя это событие, мы можем проверить форму, когда пользователь взаимодействует с полем, а затем переходит к другому полю. Вот пример реализации этого метода:
import { useFormik } from 'formik';
const MyForm = () => {
  const formik = useFormik({
    initialValues: {
      // form field initial values
    },
    validateOnBlur: true,
    // form validation schema and handlers
  });
  return (
    <form onSubmit={formik.handleSubmit}>
      <input
        type="text"
        name="username"
        onBlur={formik.handleBlur}
        onChange={formik.handleChange}
        value={formik.values.username}
      />
      {formik.touched.username && formik.errors.username ? (
        <div>{formik.errors.username}</div>
      ) : null}
      {/* other form fields */}
      <button type="submit">Submit</button>
    </form>
  );
};
  1. Событие onTouchStart:
    Событие onTouchStart запускается, когда пользователь касается поля формы. Его можно использовать для проверки формы, как только пользователь взаимодействует с полем. Вот пример:
import { useFormik } from 'formik';
const MyForm = () => {
  const formik = useFormik({
    initialValues: {
      // form field initial values
    },
    validateOnBlur: false,
    validateOnTouch: true,
    // form validation schema and handlers
  });
  return (
    <form onSubmit={formik.handleSubmit}>
      <input
        type="text"
        name="username"
        onTouchStart={formik.handleTouch}
        onChange={formik.handleChange}
        value={formik.values.username}
      />
      {formik.touched.username && formik.errors.username ? (
        <div>{formik.errors.username}</div>
      ) : null}
      {/* other form fields */}
      <button type="submit">Submit</button>
    </form>
  );
};
  1. Пользовательская обработка событий касания.
    Formik обеспечивает гибкость для обработки событий касания вручную. Вы можете написать собственную логику для запуска проверки формы на основе определенных событий касания. Вот пример:
import { useFormik } from 'formik';
const MyForm = () => {
  const formik = useFormik({
    initialValues: {
      // form field initial values
    },
    validateOnBlur: false,
    validateOnTouch: false,
    // form validation schema and handlers
  });
  const handleTouch = (e) => {
    formik.setFieldTouched(e.target.name, true, false); // Mark field as touched
    formik.validateForm(); // Trigger form validation
  };
  return (
    <form onSubmit={formik.handleSubmit}>
      <input
        type="text"
        name="username"
        onTouchStart={handleTouch}
        onChange={formik.handleChange}
        value={formik.values.username}
      />
      {formik.touched.username && formik.errors.username ? (
        <div>{formik.errors.username}</div>
      ) : null}
      {/* other form fields */}
      <button type="submit">Submit</button>
    </form>
  );
};

Реализуя эти методы с помощью Formik, вы можете улучшить взаимодействие с пользователем в своих формах React. Запуск проверки формы касанием позволяет пользователям получать мгновенную обратную связь и снижает сложности в процессе отправки формы.