我们的React Native应用程序使用Navigation Experimental NavigationCardStack。在切换选项卡(NavigationStateUtils.jumpToIndex)上,我切换的选项卡中的场景,卸载。当我切换回原始标签时,相同的场景再次安装,导致应用程序出现一些缓慢。
我们在这里创建了一个示例GitHub repo:https://github.com/zachrnolan/RN-NavigationExperimental-Redux-Example/tree/tabs
此行为是导航实验的一部分还是导航实施的副作用?
答案 0 :(得分:2)
这是因为你没有切换标签,你替换了导航状态。要实际切换标签,您应该将tabs
状态传递给NavigationCardStack
,这样(来自您的示例的固定代码):
<NavigationCardStack
navigationState={tabs}
onNavigateBack={backAction}
但是,如果我理解正确并且您想要保持页面导航,请通过将导航模式分成两部分并将一个嵌套到另一个来实现。例如:
<TabsContainer>
- 控制标签导航并呈现Tab1或Tab2(不应绘制标题!)。使用state.tabNavigationState <Tab1>
- 控制页面导航,绘制标题并呈现Page1A和Page1B。使用state.pageNavigationState <Tab2>
- 渲染Page2
(例如,没有导航,但可以包含任何内容)