为什么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));
}
}
我就不给你说原因了,解决方案是这个timer对象要么放在函数组件之外,要么用useRef包裹。