在 appcontainer 之间进行 react-native 导航
react-native naviguate between appcontainers
目标是结合 BottomBarNavigator 和 TopBarNavigator。
我想在组件 (componentA) 中放置一个 NavigatorB (MaterialTopBarNavigator),它是 navigatorA (BottomTabNavigator) 的屏幕。
为此,我在我的组件中创建了一个 MaterialTopBarNavigator,并将它包装在一个 AppContainer 中,以便在我的渲染函数中使用它。
在组件A中:
const TabNavigator = createAppContainer(createMaterialTopTabNavigator({
screen1: {
screen: ComponentB,
},
screen2: {
screen: ComponentB,
}
}))
class ComponentA extends React.Component {
render() {
return (
<View>
//Some Stuff
<TabNavigator />
</View>
)
}
}
现在,我想从包含 ComponentA 的导航器从 componentB 导航到另一个屏幕:ComponentC
const MainTabNavigator = createBottomTabNavigator({
MainScreen1: {
screen: ComponentA
},
MainScreen2: {
screen: ComponentC
}
}
这是我尝试过的:
在组件 B 中:
this.props.navigation.naviguate('MainScreen2', args)
所以不行,因为props.navigation继承自ComponentA中定义的TabNavigator
我搜索了将 componentA 的 props.navigation 传递给 TabNavigator (<TabNavigator args=this.props.navigation>
) 的方法,但找不到。
我不确定我这样做是否正确,因为我看到有人建议不要创建多个 appContainer here。但是将 TabNavigator 直接放在 MainTabNavigator 中,将 ComponentA 放在 TabNavigator 中,这不是我想要的,因为我希望共享“//Some Stuff”。
提前感谢您的帮助,请随时向我询问更多详情。
我找到了使用 NavigationService 的方法,我为 MainTabNavigator 创建了 NavigationService 并按照 ComponentB 中指定的方式使用它。
目标是结合 BottomBarNavigator 和 TopBarNavigator。 我想在组件 (componentA) 中放置一个 NavigatorB (MaterialTopBarNavigator),它是 navigatorA (BottomTabNavigator) 的屏幕。
为此,我在我的组件中创建了一个 MaterialTopBarNavigator,并将它包装在一个 AppContainer 中,以便在我的渲染函数中使用它。
在组件A中:
const TabNavigator = createAppContainer(createMaterialTopTabNavigator({
screen1: {
screen: ComponentB,
},
screen2: {
screen: ComponentB,
}
}))
class ComponentA extends React.Component {
render() {
return (
<View>
//Some Stuff
<TabNavigator />
</View>
)
}
}
现在,我想从包含 ComponentA 的导航器从 componentB 导航到另一个屏幕:ComponentC
const MainTabNavigator = createBottomTabNavigator({
MainScreen1: {
screen: ComponentA
},
MainScreen2: {
screen: ComponentC
}
}
这是我尝试过的:
在组件 B 中:
this.props.navigation.naviguate('MainScreen2', args)
所以不行,因为props.navigation继承自ComponentA中定义的TabNavigator
我搜索了将 componentA 的 props.navigation 传递给 TabNavigator (<TabNavigator args=this.props.navigation>
) 的方法,但找不到。
我不确定我这样做是否正确,因为我看到有人建议不要创建多个 appContainer here。但是将 TabNavigator 直接放在 MainTabNavigator 中,将 ComponentA 放在 TabNavigator 中,这不是我想要的,因为我希望共享“//Some Stuff”。
提前感谢您的帮助,请随时向我询问更多详情。
我找到了使用 NavigationService 的方法,我为 MainTabNavigator 创建了 NavigationService 并按照 ComponentB 中指定的方式使用它。