离开后反应间隔不停止
React Interval not stopping after Leaving
我遇到的问题是我在 useEffect
中使用的间隔在离开组件时没有停止。
密码是:
useEffect(() => {
const timer = window.setInterval(() => {
refreshSave();
}, 3000);
return () => {
window.clearInterval(timer);
};
}, []);
我正在考虑制作一个空 span
的动画,然后使用 onAnimationIteration
触发保存。
我以前遇到过类似的问题,使用 useRef
钩子解决了它。
const funRef = useRef(null);
//...
useEffect(() => {
funRef.current = setInterval(() => {
refreshSave();
}, 3000);
return () => {
clearInterval(funRef.current);
};
}, []);
更多:
您并没有真正给我们提供很多工作背景(例如,“离开组件”是什么意思?),所以我们有点摸不着头脑。
但是,作为第一步,您可以尝试声明timer
变量全局:
let timer; // <- put here
useEffect(() => {
timer = window.setInterval(() => {
refreshSave();
}, 3000);
return () => {
window.clearInterval(timer);
};
}, []);
我遇到的问题是我在 useEffect
中使用的间隔在离开组件时没有停止。
密码是:
useEffect(() => {
const timer = window.setInterval(() => {
refreshSave();
}, 3000);
return () => {
window.clearInterval(timer);
};
}, []);
我正在考虑制作一个空 span
的动画,然后使用 onAnimationIteration
触发保存。
我以前遇到过类似的问题,使用 useRef
钩子解决了它。
const funRef = useRef(null);
//...
useEffect(() => {
funRef.current = setInterval(() => {
refreshSave();
}, 3000);
return () => {
clearInterval(funRef.current);
};
}, []);
更多:
您并没有真正给我们提供很多工作背景(例如,“离开组件”是什么意思?),所以我们有点摸不着头脑。
但是,作为第一步,您可以尝试声明timer
变量全局:
let timer; // <- put here
useEffect(() => {
timer = window.setInterval(() => {
refreshSave();
}, 3000);
return () => {
window.clearInterval(timer);
};
}, []);