React Native中的异步加载

时间:2016-09-04 11:57:08

标签: react-native navigator

如果我有一个有两个视图的导航器:

  _renderScene(route, navigator) {
    if (route.id === 1) {
      return <PageOne navigator={navigator}
                         setIndex={this.setIndex} />
    } else if (route.id === 2) {
      return <PageTwo navigator={navigator}
                      index={this.state.index} />
    }
  }

当我在PageOne上时,我想开始预装PageTwo。是否有一种简单的方法来处理此异步加载,以便在用户单击导航时页面就绪?

想象一下第一页是滚动视图,第二页是图像列表,因此您希望在滚动到选项卡后立即开始加载view2的图像列表。这样,当您选择选项卡时,它将开始加载相关视图。

对我来说真正的困惑是如何开始在后台加载页面?

1 个答案:

答案 0 :(得分:1)

我最初会在此组件的构造函数中创建PageOnePageTwo,然后在渲染中传递相关的一个。

类似的东西:

_initComponent() { //to call on constructor, or right after component mounted, or when props changed. make sure this does only run once in the component lifetime.
    this.page1 = <PageOne navigator={navigator}
                         setIndex={this.setIndex} />
    this.page2 = <PageTwo navigator={navigator}
                      index={this.state.index} />
}

_renderScene(route, navigator) {
    if (route.id === 1) {
      return this.page1
    } else if (route.id === 2) {
      return this.page2
    }
  }