我正在使用react-navigation
,并且在TabNavigator
内有嵌套的StackNavigator
。我在TabNavigator
中有三个标签,需要根据某些逻辑为initialRouteName
动态设置TabNavigator
。
我已经尝试将TabNavigator
放入具有动态选择的初始标签的React
组件中,并在StackNavigator
中使用,使道具通过screenProps
的TabNavigator
。但是这样一来,我无法导航到StackNavigator
的任何路线。
有没有办法动态制作initialRouteName
。
注意:我没有为此应用程序使用redux。
似乎您真的很亲近。您可以设置导航状态的索引,以指定将其显示为初始路线。
<SomeTabNavigator
navigation={{
...this.props.navigation,
state: {
...this.props.navigation.state,
index: 1 // or whichever you want
}
}}
screenProps={{
// whatever the props you wanna pass to child screens.
}}
/>
但是您还必须通过静态路由才能通过路由器,否则将无法导航。 (或者,如果已有导航,请尝试使用navigate
而不是push
。)
class Screen extends React.Component{
static router = SomeTabNavigator.router
...
如果不是这种情况,则应检查导航器的结构,以确保您正确堆叠了堆栈导航器和选项卡导航器。
也许为时已晚,但我希望它能对某人有所帮助。
查看下面的链接以获取更多详细信息。