Reactjs Can';t使用setInterval对未安装的组件执行React状态更新
我尝试在Reactjs Can';t使用setInterval对未安装的组件执行React状态更新,reactjs,react-hooks,setinterval,Reactjs,React Hooks,Setinterval,我尝试在setInterval函数中设置状态,结果得到: 无法对未安装的组件执行React状态更新 有什么帮助吗 useEffect(() => { NewTimer() }, []) const NewTimer = () => { let count = 0 let timer = setInterval(() => { count++ if (count === 10) { clearInterval(timer); }
setInterval
函数中设置状态,结果得到:
无法对未安装的组件执行React状态更新
有什么帮助吗
useEffect(() => {
NewTimer()
}, [])
const NewTimer = () => {
let count = 0
let timer = setInterval(() => {
count++
if (count === 10) {
clearInterval(timer);
}
setCounter(count)
}, 1000);
}
这可能是因为虽然您的组件已卸载,但您的间隔仍在运行(我不知道是否已卸载,但可能已卸载)。我建议你这样做:
useffect(()=>{
让计数=0
let timer=setInterval(()=>{
计数++
如果(计数=10){
清除间隔(计时器);
}
设置计数器(计数)
}, 1000);
return()=>{
清除间隔(计时器);
}
}, [])
组件卸载时,将调用
useffect
回调中返回的函数。代码只是在卸载组件时清除间隔。将组件完整源代码添加到此处help@AlexisZerdis那么请接受我的回答,这样将来的读者可以看到什么是有效的