首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在运行setInterval后响应本地clearInterval运行5或6次

在运行setInterval后响应本地clearInterval运行5或6次
EN

Stack Overflow用户
提问于 2021-12-30 12:00:09
回答 1查看 209关注 0票数 0

我目前正在开发一个应用程序Reactive原住民,其中包括一个秒表,当手机陀螺仪捕捉到一定数量的运动时停止。为此,我使用setInterval检查陀螺仪上的更新,如果满足要求,请停止计时器。然而,当setInterval运行时出现了问题,通常是在clearInterval停止运行5到6次之后,并使用钩子来检查游戏是否已经开始。目前,setInterval设置为1ms,但无论间隔是1000 ms还是10000 ms,仍然存在相同的问题。

代码语言:javascript
复制
const stopwatchINT = setInterval(() => {
 if (gameStarted) {
  if (data.x > 0.2) {
    clearInterval(stopwatchINT)
    let endTimer = performance.now()
    setTimeTook(Math.round(endTimer - startTimer) + 'ms')
    playSound()
    setContainer(WHITE)
    setGameStarted(false)
    setReactionScreenDisplay({'select': 'none','singleCreate': 'none', 'reactionGame': 'none', 'flash': 'none', 'timeTook': 'block'})
  }
 }
}, 1)
EN

回答 1

Stack Overflow用户

发布于 2021-12-30 17:37:30

没关系,我已经解决了这个问题。对于任何被困在这上面的人,您可以将setInterval封装在一个useEffect中,这就是抛给我的原因,因为我忘记了传递数组中的钩子。例如:

代码语言:javascript
复制
  useEffect(() => {
  if (isStart) {
    const timer = setInterval(() => {
      if (count > 0) {
        setCount(count - 1)
      } else {
        setCount('Times up');
        clearInterval(timer);
      }
    }, 1000);
  }
}, [isStart]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70531361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档