Разумно ли получить React «Превышена максимальная глубина обновления» без случайной рекурсии?

Я пишу приложение Cesium/Resium с примерно 12000 кликабельными анимированными точками. Я получаю предупреждение ReactMaximum update depth exceeded. Когда количество точек <5000, предупреждение не появляется, но где-то в диапазоне 7-8000 я обычно вижу это предупреждение. При отладке в браузере мой стек вызовов состоит из большого количестваrecursivelyTraverseMutationEffectsза которым следует многоpostMessage (async)

Я уже устранил два источника этого предупреждения, которые были глупой рекурсией. У меня естьuseEffectэто обновляло его триггер.

Является ли это предупреждение признаком того, что приложение необходимо оптимизировать, или признаком того, что происходит какой-то глупый рекурсивный рендеринг?

2 ответа

Это ошибка, вам нужно ее исправить.

В зависимости от полного сообщения об ошибке эта ошибка означает

  • по крайней мере, что была проделана ненужная работа , что сделало ваше приложение очень медленным или
  • React прекратит свою работу при этой ошибке, поэтому ваше приложение, скорее всего, будет сломано или в нем будет отсутствовать контент.

Да.Разумно получить React «Превышена максимальная глубина обновления» без случайной рекурсии. Мы установили крошечный размер рендеринга объектов, и теперь мы можем отображать гораздо больше объектов, прежде чем нажать кнопкупредупреждение.Cesium/Resium с трудом обрабатывает такое количество пикселей, пока наше приложение выполняет другие действия в браузере. Стек оказывается слишком большим, потому что мы запрашиваем слишком много, а не потому, что создаем плохой цикл обновления.

Другие вопросы по тегам