Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: onClick, event handler, closure, arrow function, React

Как передать параметр в обработчик события onClick, не вызвав его немедленно?

Вопрос проверяет понимание замыканий и передачи аргументов в обработчики событий в React, что необходимо для избежания ошибок с немедленным вызовом функций.

Короткий ответ

Чтобы передать параметр в onClick, не вызывая функцию немедленно, используйте стрелочную функцию: onClick={() => handleClick(param)}. Это создает новую функцию, которая будет вызвана при клике. Альтернативно можно использовать .bind: onClick={handleClick.bind(null, param)}. Прямой вызов handleClick(param) выполнит функцию сразу при рендере.

Длинный ответ

Передача параметров в обработчик onClick

В React и JavaScript важно передавать параметры в обработчики событий так, чтобы функция не вызывалась немедленно при рендере компонента. Если написать onClick={handleClick(param)}, то handleClick выполнится сразу, а не по клику, что часто приводит к ошибкам.

Основные способы

  • Стрелочная функция: onClick={() => handleClick(param)} — создает новую функцию, которая будет вызвана при событии. Это самый распространенный и читаемый способ.
  • Метод .bind: onClick={handleClick.bind(null, param)} — возвращает новую функцию с привязанным контекстом и аргументами. Может быть менее производительным при частых ререндерах, но работает корректно.

Пример кода

function Button({ id }) {
  const handleClick = (param) => {
    console.log('Clicked:', param);
  };

  return (
    <button onClick={() => handleClick(id)}>
      Click me
    </button>
  );
}

В этом примере id передается в handleClick только при клике, а не при рендере.

Вывод

Используйте стрелочные функции для передачи параметров в обработчики событий в React — это просто, безопасно и соответствует лучшим практикам. Избегайте прямого вызова функций в JSX, чтобы предотвратить неожиданное выполнение кода.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    5

  • Сложность:

    2

Навыки

  • JavaScript

    JavaScript

  • React

    React

Ключевые слова

#onClick

#event handler

#closure

#arrow function

#React

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию