React Native Navigation实验选项卡切换Unmount / WillMount

时间:2017-01-13 07:23:47

标签: javascript reactjs react-native

我们的React Native应用程序使用Navigation Experimental NavigationCardStack。在切换选项卡(NavigationStateUtils.jumpToIndex)上,我切换的选项卡中的场景,卸载。当我切换回原始标签时,相同的场景再次安装,导致应用程序出现一些缓慢。

我们在这里创建了一个示例GitHub repo:https://github.com/zachrnolan/RN-NavigationExperimental-Redux-Example/tree/tabs

此行为是导航实验的一部分还是导航实施的副作用?

1 个答案:

答案 0 :(得分:2)

这是因为你没有切换标签,你替换了导航状态。要实际切换标签,您应该将tabs状态传递给NavigationCardStack,这样(来自您的示例的固定代码):

<NavigationCardStack
  navigationState={tabs}
  onNavigateBack={backAction}

但是,如果我理解正确并且您想要保持页面导航,请通过将导航模式分成两部分并将一个嵌套到另一个来实现。例如:

  • <TabsContainer> - 控制标签导航并呈现Tab1或Tab2(不应绘制标题!)。使用state.tabNavigationState
  • <Tab1> - 控制页面导航,绘制标题并呈现Page1A和Page1B。使用state.pageNavigationState
  • <Tab2> - 渲染Page2(例如,没有导航,但可以包含任何内容)