#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 может вызывать обратный вызов — чтобы убедиться, что вы всегда можете прочитать код.