React-native慢速UI转换性能缓慢

时间:2018-06-14 10:51:02

标签: reactjs react-native

我在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
  });
}`

1 个答案:

答案 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
  });
}