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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题