【发布时间】:2020-11-23 08:58:25
【问题描述】:
我的问题是我在useEffect 中使用的间隔在离开组件时没有停止。
代码是:
useEffect(() => {
const timer = window.setInterval(() => {
refreshSave();
}, 3000);
return () => {
window.clearInterval(timer);
};
}, []);
我正在考虑为空的span 设置动画,然后使用onAnimationIteration 触发保存。
【问题讨论】:
-
如果您杀死您的开发服务器,清除缓存/硬重新加载浏览器选项卡/窗口,然后重新启动本地开发服务器,问题是否仍然存在?我没有看到您的代码有任何问题,但我已经看到在“间歇性”保存/热重载期间浏览器设置和保持间隔的位置。
-
“离开组件”是什么意思,给我们看可重现的代码How to create a Minimal, Reproducible Example
-
如果@ShahnawazHossan 引用的答案对您没有帮助,我认为结合使用 clearInterval (developer.mozilla.org/en-US/docs/Web/API/…) 和 useEffect 中的 return 语句来模拟 componentWillUnmount (dev.to/robmarshall/…) 应该可以解决问题.
标签: javascript reactjs react-hooks setinterval