Задать вопрос
@wiincked

Как убрать вызов 2 обработчиков при клике на дочерний элемент?

Добрый день!
У меня есть обработчик при клике на родительский блок, который вывод сообщение в консоль.
Внутри родительского блока есть кнопка при клике на нее должно происходить другой обработчик, но вызывается все два обработчика.
Подскажите, пожалуйста, как можно сделать, чтобы при клике на кнопку вызывался только один обработчик.

Ссылка на пример https://codesandbox.io/s/priceless-moon-hb7h1
  • Вопрос задан
  • 141 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Merion Academy
    Frontend-разработка на React
    4 месяца
    Далее
  • ProductStar
    React: отточите навыки интерфейсной разработки
    6 недель
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
Погуглите, что такое всплытие событий, и как его останавливать.
А можете и не гуглить.
const onClickRow = () => {
  console.log('Строка');
};

const onClickButton = e => {
  e.stopPropagation();
  console.log('Кнопка');
};

<div onClick={onClickRow}>
  <button onClick={onClickButton}>click me</button>
</div>

Или оставьте один обработчик, на родительском элементе, внутри которого в зависимости от target события выполняйте различные действия.
Всё ещё ленитесь гуглить? - ну тогда жмите сюда.
const onClickRow = e => {
  if (e.target.tagName === 'BUTTON') {
    console.log('Кнопка');
  } else {
    console.log('Строка');
  }
};

<div onClick={onClickRow}>
  <button>click me</button>
</div>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽