> Где повесить обработчик клика для кнопок при маппинге массива в React? (React)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Cyber Interactive
Стек: React
> Пример ответа
Обработчик клика для кнопок при маппинге массива в React следует вешать непосредственно на элемент кнопки внутри колбэка map(). Это обеспечивает доступ к данным конкретного элемента массива и правильную привязку контекста.
Пример:
JSXfunction ButtonList({ items }) {const handleClick = (item) => {console.log('Clicked:', item.id);};return (<div>{items.map((item) => (<button key={item.id} onClick={() => handleClick(item)}>{item.label}</button>))}</div>);}
Ключевые моменты:
-
Обработчик определяется вне
map()(в компоненте) для избежания пересоздания функций при каждом рендере, но вызывается внутри стрелочной функции вonClick. -
Используйте
keyдля каждого элемента, чтобы React эффективно обновлял DOM. -
Если обработчик не требует данных элемента (например, просто
onClick={handleClick}), можно передать ссылку на функцию без стрелочной обертки, но это редкость при маппинге.
> Похожие задачи по frontend
Что такое forwardRef в React и для чего он используется?
Почему React-компонент может вызываться два раза подряд?
Как оптимизировать React компонент, чтобы Child компонент не перерендеривался при вводе текста?
Как передать данные с одного микрофронтенда на другой в React?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью