reacterrorrutils.invokeGuardedCallback в React повторно запускает событие в браузере IE

#javascript #html #reactjs #highcharts

#javascript #HTML #reactjs #высокие диаграммы

Вопрос:

Я использую react вместе с highchart в своем приложении. И в настоящее время сталкивается со странной проблемой с React. У меня есть один пункт меню, и при его событии щелчка он выполняет некоторую обработку (скажем, экспортирует диаграмму в виде изображения). Итак, в настоящее время я заметил, что оно запускается при любой операции setState в моем компоненте react. Когда я заглянул в стек вызовов, я обнаружил, что reacterrorrutils.invokeGuardedCallback повторно отправляет это событие.

Кто-нибудь сталкивался с подобной проблемой с компонентом react, когда щелчки запускаются при любой операции setState

Комментарии:

1. Итак, здесь нет проблемы с высокими диаграммами? Это похоже на более общую проблему, связанную с ReactJS. Возможно, вы получите больше помощи, если сможете опубликовать свой код, написать, что вы пробовали, подготовить небольшую, проверяемую демонстрацию.

Ответ №1:

Прошло некоторое время, но я всегда сталкивался с такими проблемами, когда у меня были вложенные компоненты с одним и тем же типом EventListener. Например, внешний компонент с реквизитом onClick и внутренний элемент с другим реквизитом onClick.

если щелкнуто внутреннее событие, событие всплывает до внешнего, и также вызывается обратный вызов onClick внешнего элемента. Теперь в трассировке стека вы видите, что оно было вызвано invokeGuardedCallback

чтобы остановить всплывающее событие, вызовите

 event.stopPropagation();
  

внутри функции обратного вызова внутреннего элемента.

Могут быть и другие сценарии, в которых ivokeGuardedCallback может вызывать обратный вызов — чтобы убедиться, что вы всегда можете прочитать код.