我在React Native中构建了一个Android应用程序来进行位置跟踪,定期将lat / lng发送到用户选择的服务器。 管理员用户可以通过以1秒的时间间隔启动轮询来定期列出位置的变化来跟踪用户,这会创建UI以便缓慢响应,并且在组件之间移动存在一些滞后。 我正在使用 react-native-background-timer ,但它没有按预期工作。
在不阻止UI的情况下调用轮询功能的最佳方法是什么? 这是我的代码
`onChangeTab(event) {
if (event === 1) {
intervalId = BackgroundTimer.setInterval(() => {
this.props.actions.getAllLocationAction();
}, 2000);
} else {
BackgroundTimer.clearInterval(intervalId);
}
this.setState({
activeTab: event
});
}`
答案 0 :(得分:0)
如果您的UI包含动画,则可以使用InteractionManager API。有一个runAfterInteractions()方法,允许您延迟(长时间运行)操作,直到完成所有动画。例如:
import { InteractionManager } from 'react-native';
onChangeTab(event) {
if (event === 1) {
InteractionManager.runAfterInteractions(() => {
this.props.dispatchTeamFetchStart();
});
}
this.setState({
activeTab: event
});
}