如何结合使用createStackNavigator和create createDrawerNavigator来设置默认屏幕

时间:2019-09-02 19:57:35

标签: react-native react-navigation

我设置了我的本机应用程序的路由,并尝试结合使用createStackNavigator和createDrawerNavigator。因此,我抽屉中的屏幕之一是stackNavigator(例如:Home,News,Images,其中Images是stackNavigator),而stackNavigator还有另外两个屏幕(例如:Feed和Grid),并且我试图将Feed设置为默认屏幕,所以我总是重定向到Feed。

我尝试过类似的操作:initialRouteName:'Feed'

但是,如果导航到网格而不是导航到抽屉中的某些屏幕,然后返回到“图像”,则会打开网格而不是Feed

const ImagesTab = createStackNavigator(
    {
        Feed: { screen: Feed },
        Grid: { screen: Grid },
    },
    {
        headerMode: 'none',
        navigationOptions: {
            headerVisible: false,
        }
    }
)

const AppDrawer = createDrawerNavigator({

    home: { screen: Home },
    news: { screen: News },
    images: { screen: ImagesTab },
    galeria: { screen: AppTabNavigator },
},
    {
        contentComponent: DrawerContent
    }
);

2 个答案:

答案 0 :(得分:0)

您应该同时设置两个导航器的 initialRouteName

const ImagesTab = createStackNavigator(
    {
        Feed: { screen: Feed },
        Grid: { screen: Grid },
    },
    {
        headerMode: 'none',
        navigationOptions: {
            headerVisible: false,
        },
        initialRouteName: 'Feed'
    }
)

const AppDrawer = createDrawerNavigator({

    home: { screen: Home },
    news: { screen: News },
    images: { screen: ImagesTab },
    galeria: { screen: AppTabNavigator },
},
    {
        contentComponent: DrawerContent,
        initialRouteName: 'images'
    }

);

答案 1 :(得分:0)

我不知道您是否对这个问题有想要的东西。但是我认为,在此处放置一些资源可能会帮助后来遇到这个问题的人。

问题是,您必须使用我们称为嵌套导航的方法,您可以参考此反应导航的官方文档https://reactnavigation.org/docs/nesting-navigators并阅读本节https://reactnavigation.org/docs/drawer-based-navigation