我正在尝试显示Stopwatch
并且计时器正常运行,但是当计时器运行并且我将应用程序置于后台时,然后当应用程序进入前台时,UI被阻止并且没有点击活动正常。
这是我的核心代码段:
this.interval = this.interval ? this.interval : setInterval(async () => {
this.setState((state, props) => ({ elapsed: new Date() - state.startTime - state.pausedTime }))
}, 1)
如果我错过了任何东西,请让我知道。
建议表示赞赏 谢谢
答案 0 :(得分:1)
您应该熟悉:https://facebook.github.io/react-native/docs/timers
尤其是:InteractionManager.requestAnimationFrame(<function>)
。这将为您提供一种不挂起UI线程的正确方法,例如
InteractionManager.requestAnimationFrame(function() {
this.setState({ elapsed: new Date(), ...}));
...
});
答案 1 :(得分:0)
我将间隔作为1
传递了一个错误,但是应该是1000
毫秒。
谢谢大家。