Проверяет понимание необходимости сброса состояния валидации формы при новом вводе пользователя для обеспечения корректной обратной связи.
При разработке форм с валидацией важно своевременно обновлять состояние ошибок. Если не сбрасывать предыдущий результат валидации при новом вводе, пользователь будет видеть устаревшие сообщения, что приводит к путанице и плохому пользовательскому опыту.
Рассмотрим простую форму с валидацией email на React. При каждом изменении поля мы сбрасываем предыдущую ошибку и запускаем новую валидацию.
import React, { useState } from 'react';
function EmailForm() {
const [email, setEmail] = useState('');
const [error, setError] = useState('');
const validateEmail = (value) => {
// Сбрасываем предыдущую ошибку
setError('');
if (!value.includes('@')) {
setError('Email должен содержать @');
}
};
const handleChange = (e) => {
const value = e.target.value;
setEmail(value);
validateEmail(value);
};
return (
<div>
<input
type="email"
value={email}
onChange={handleChange}
/>
{error && <p style={{color: 'red'}}>{error}</p>}
</div>
);
}В этом примере при каждом вызове handleChange мы сначала сбрасываем ошибку, а затем проверяем новое значение. Если пользователь ввел корректный email, ошибка не появится.
Сброс предыдущего результата валидации при каждом новом вводе — это обязательная практика для создания интуитивно понятных форм. Она обеспечивает актуальную обратную связь и предотвращает дезинформацию пользователя.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию