我尝试在setState
函数中进行setInterval
并得到:
无法在未安装的组件上执行React状态更新。
有帮助吗?
useEffect(() => {
NewTimer()
}, [])
const NewTimer = () => {
let count = 0
let timer = setInterval(() => {
count++
if (count === 10) {
clearInterval(timer);
}
setCounter(count)
}, 1000);
}
答案 0 :(得分:0)
这可能是因为虽然卸载了组件,但间隔正在运行(我不知道它是否安装了,但是可能)。我建议您这样做:
useEffect(() => {
let count = 0
let timer = setInterval(() => {
count++
if (count === 10) {
clearInterval(timer);
}
setCounter(count)
}, 1000);
return () => {
clearInterval(timer);
}
}, [])
卸载组件时,将调用useEffect
回调函数中返回的函数。该代码只是清除了卸载组件的时间间隔。