React 中 clearInterval为什么无效?
为什么clearinterval不生效?
react的项目,在函数组件中定义了定时器容器:
var timer = {
sto: [], //存延时器
siv: [], //存循环器
};
想通过鼠标移入控制定时器启停于是定义了
function handleMouseOver(){
if(timer.siv.length>0){
timer.siv.forEach(siv=>clearInterval(siv))
}else{
timer.siv.forEach(siv=>clearInterval(siv));
timer.siv.push(setInterval(()=>{console.log("xxx")},50));
}
}
回复
1个回答

test
2024-06-24
我就不给你说原因了,解决方案是这个timer对象要么放在函数组件之外,要么用useRef包裹。
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容