reactjs - 如果我想监听元素的 boundingClientRect() 变化,应该在 useEffect 的依赖数组中放入什么?
问题描述
每当我的布局中的某些内容发生变化时,我试图获得一个position:absolute
指向重新定位的箭头,如果这会影响到的位置(例如侧边栏打开或关闭或窗口被调整大小)。
无论何时发生变化的东西。不幸的是,将etc 添加到依赖项数组中不起作用。在这种情况下,它只会在状态改变时更新一次箭头,而不是平滑地跟随目标的动画。targetelement
targetelement
boundingClientrect
targetelement
elemRect.left
我也尝试过ResizeObserver
,它不会在目标元素移动时触发,而只会在它调整大小时触发。
省略依赖数组(如示例中所示)实现了我想要发生的事情,但它完全炸毁了计算机。我还经常收到“超出最大更新深度错误”,这是有道理的,因为箭头基本上一直在更新状态。
使用useLayoutEffect
也不行。
我有一个我需要的小例子:
https://codesandbox.io/embed/suspicious-haze-4jdi1
我很乐意就如何正确解决这个问题提出建议。
提前致谢!
解决方案
推荐阅读
- excel - VBA - 将 A 列到 I 列复制到本书末尾的新工作表中
- python - Matplotlib/CartoPy 实体填充轮廓图下方
- git - 如何计算上游和本地分支之间的落后/提前提交?
- nlp - 提取非结构化文本组以供以后的 NLP 使用?
- swift - SwiftUI 对齐底部
- xml - 使用 AppleScript 将 XML 转换为 CSV,需要帮助调试
- node.js - 为什么 webpack-dev-server 不能在 React 应用程序中代理 API 调用?返回 404
- android - 未找到适用于该设备的兼容 APK
- python - Django 多对多字段
- javascript - 如何从不同的按钮多次调用一个函数?