离开后反应间隔不停止

Mar*_*ark 4 javascript setinterval reactjs react-hooks

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

代码是:

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

我正在考虑制作一个空的动画span,然后用于onAnimationIteration触发保存。

Ket*_*eke 5

我之前也遇到过类似的问题,用useRefhook解决了。


const funRef = useRef(null);

//...

useEffect(() => {
    funRef.current = setInterval(() => {
      refreshSave();
    }, 3000);
    return () => {
     clearInterval(funRef.current);
    };
  }, []);
Run Code Online (Sandbox Code Playgroud)

了解更多:计时器应用程序