React Hooks 和 onMouseMove 节流问题

问题描述

我是一名初级 React 程序员,我无法找出一种方法来限制以下代码。子组件需要知道鼠标位置,因此父组件会获取该信息并将其向下传递。大约有 100 个组件,因此它们实际上都在最终代码获取这些信息。

我想限制 onMouseMove 更新位置变量的速率,但是因为当前代码存在明显的性能问题。我已经尝试过(这里没有写)来自 lodash 的 _debounce 和 _throttle,但它们根本不起作用,可能是由于 React 本身的工作方式。

const [position,setPosition] = useState({x: 0,y:0})
const handleMouseMove = (e) => setPosition({x: e.clientX,y: e.clientY})
<section onMouseMove={handleMouseMove}>
...
<CustomCard mousePosition={position} className="spell-selection-image-container">
  {position.x}{position.y}
</CustomCard>
</section>

我在 Stackoverflow 上看到过类似的主题,但没有一个涉及 onMouseMove 和需要该信息的子组件。例如有使用useRef的方法,但是由于它在改变时不会更新组件HTML代码区域,所以没有用,因为CustomCard永远不会得到更新。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)