Что поместить в массив зависимостей useEffect, если я хочу прослушать изменение boundingClientRect () элемента? - PullRequest
1 голос
/ 19 сентября 2019

Я пытаюсь получить стрелку position:absolute, которая указывает на targetelement, чтобы изменить положение всякий раз, когда что-то в моем макете изменяется, если это влияет на положение targetelement (например, открывается или закрывается боковая панель, или окно получаетизменено)
Что-то вроде того, когда boundingClientrect из targetelement изменяется.Добавление elemRect.left и т. Д. В массив зависимостей не работает, к сожалению, я намерен.В этом случае он обновляет стрелку только один раз, когда изменяется состояние, вместо плавного следования анимации цели.

Я также попробовал ResizeObserver, который не срабатывает при перемещении целевого элемента.но только когда он изменяет размеры.

Пропуск массива зависимостей (как в примере) достигает того, чего я хочу, но полностью жарит компьютер.Я также часто получаю сообщение об ошибке «Максимальная обновленная глубина превышена», что имеет смысл, поскольку стрелка обновляет состояние в основном все время.

Использование useLayoutEffect также не работает.

У меня естьВот небольшой пример того, что мне нужно:

https://codesandbox.io/embed/suspicious-haze-4jdi1

Я бы с удовольствием посоветовался, как правильно решить эту проблему.

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...