我目前正在React Native中开发一个应用程序,其中包括一个秒表,当手机陀螺仪检测到一定量的运动时,秒表会停止。为此,我使用setInterval来检查陀螺仪上的更新,如果满足要求,则停止计时器。然而,当setInterval在被clearInterval停止并使用钩子检查游戏是否已经开始之后通常运行5-6次时,问题出现。当前setInterval设置为1 ms,但无论间隔是1000 ms还是10000 ms,它仍然存在相同的问题。
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)
1条答案
按热度按时间i34xakig1#
没关系,我已经解决了这个问题。对于任何人谁卡住了,你可以把setInterval封装在一个useEffect,这是什么扔给我,因为我忘了传递数组中的钩子。例如: