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));
    }
}
阅读 1k
1 个回答

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

推荐问题