> Зачем в обработчике onChange использовать event.target.name и event.target.value (React)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Билайн
Стек: React
> Пример ответа
В React обработчики onChange часто используют event.target.name и event.target.value для создания универсальной функции, которая может обрабатывать изменения в нескольких полях формы. Это позволяет избежать дублирования кода: вместо написания отдельного обработчика для каждого input (например, handleNameChange, handleEmailChange), вы пишете один обработчик, который динамически обновляет соответствующее поле в состоянии.
Пример:
JSXconst [form, setForm] = useState({ name: '', email: '' });const handleChange = (event) => {const { name, value } = event.target;setForm((prevForm) => ({...prevForm,[name]: value, // динамический ключ}));};return (<><input name="name" value={form.name} onChange={handleChange} /><input name="email" value={form.email} onChange={handleChange} /></>);
Здесь event.target.name содержит значение атрибута name из input (например, "name" или "email"), а event.target.value - текущее введённое значение. Используя квадратные скобки [name] в объекте состояния, вы обновляете именно то поле, которое соответствует имени input. Это делает код масштабируемым: добавление нового поля требует лишь добавления соответствующего input с уникальным name и инициализации его в состоянии.
> Похожие задачи по frontend
Какие инструменты используются для сложных форм с зависимыми полями в React?
Как интегрировать компонент с внешней валидацией в React?
Как применяется иммутабельность данных в React
Как оптимизировать React приложение с учетом бандлов и JS файлов
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью