首页 > 解决方案 > 离开后反应间隔不停止

问题描述

我的问题是我使用的间隔useEffect在离开组件时没有停止。

代码是:

useEffect(() => {
    const timer = window.setInterval(() => {
      refreshSave();
    }, 3000);
    return () => {
      window.clearInterval(timer);
    };
  }, []);

我正在考虑为空设置动画span,然后onAnimationIteration用于触发保存。

标签: javascriptreactjsreact-hookssetinterval

解决方案


我之前遇到过类似的问题,通过使用useRef钩子解决了它。


const funRef = useRef(null);

//...

useEffect(() => {
    funRef.current = setInterval(() => {
      refreshSave();
    }, 3000);
    return () => {
     clearInterval(funRef.current);
    };
  }, []);

更多信息:计时器应用程序


推荐阅读