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