reactjs - 使用 react 钩子(Hook)当光标停止移动 3 秒时如何触发功能?

标签 reactjs react-hooks

我只是在探索钩子(Hook),但我不知道在光标停止移动 3 秒后我必须使用什么逻辑才能触发函数

我的尝试

const handleMouseMove = () => {
        console.log('I don't know what to do ???')

    };
    useEffect(() => {
        window.addEventListener("mousemove", handleMouseMove);
        return () => {
            window.removeEventListener("mousemove", handleMouseMove);
        };
    },[]);

最佳答案

let timer = null;

const handleMouseMove = () => {
  if (timer) clearTimeout(timer);
  timer = setTimeout(() => {
    // do your things...
  }, 3000);
};

附加:

在您的 useEffect callback ,你应该清除这个timer避免超时回调。
useEffect(() => {
  window.addEventListener("mousemove", handleMouseMove);
  return () => {
    window.removeEventListener("mousemove", handleMouseMove);
    if (timer) clearTimeout(timer);
  };
},[]);

关于reactjs - 使用 react 钩子(Hook)当光标停止移动 3 秒时如何触发功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59189472/

相关文章:

javascript - 使用 React,通过单击同名按钮来加载文件的简单方法是什么?

reactjs - 在我的 next.js 文件中安装组件的位置

javascript - 如何在 React 中递增/递减单独的计数器?

reactjs - 使用自定义 Hook 时重新渲染太多

reactjs - 如何根据同一周期的状态有条件地运行 useEffect

javascript - ReactJS - UseRef,而不是 useState,来替换 props

reactjs - .htaccess 机器人代理

javascript - 我如何在 React 中循环遍历 JSON 对象

reactjs - React Route 不适用于嵌套 URL

javascript - react 切换 Hook 状态