“Триггер при касании с Formik: улучшение пользовательского опыта в React Forms”
В современных веб-приложениях крайне важно обеспечить удобство взаимодействия с пользователем. Когда дело доходит до обработки форм в React, Formik — популярная библиотека, которая упрощает этот процесс. В этой статье мы рассмотрим различные методы запуска проверки формы при касании с помощью Formik. Мы обсудим примеры кода для каждого метода, которые помогут вам реализовать их в ваших проектах React.
Методы запуска проверки формы при касании:
- Событие 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>
);
};
- Событие 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>
);
};
- Пользовательская обработка событий касания.
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. Запуск проверки формы касанием позволяет пользователям получать мгновенную обратную связь и снижает сложности в процессе отправки формы.