收藏
回答

为什么clearInterval无法取消定时器?

const timer = ref()


onShow(() => {
  timer.value = setInterval(() => {
    console.log(111111111111111)
  }, 3000)
})


onUnload(() => {
  if (timer.value) {
    timer.value = null
    clearInterval(timer.value)
  }
})
回答关注问题邀请回答
收藏

2 个回答

  • 游戏人生
    游戏人生
    2023-12-20

    直接给 timer 赋值,不用挂在 ref() 钩子上

    timer = setInterval(() => {
        console.log(111111111111111)
      }, 3000)
    


    然后 timer = null

    2023-12-20
    有用
    回复 1
    • 那么亮的🌙
      那么亮的🌙
      2023-12-20
      嗯嗯,可以了
      2023-12-20
      回复
  • optimistic
    optimistic
    2023-12-20

    清除之前请不要手动设置为null,这个定时器的id已经丢了。

    另外timer 用 let timer = null 即可,ref 用于响应式变量。

    2023-12-20
    有用
    回复 1
    • 那么亮的🌙
      那么亮的🌙
      2023-12-20
      可以啦,谢谢
      2023-12-20
      回复
登录 后发表内容