首页 > 解决方案 > 如何在结合使用 createStackNavigator 和 create createDrawerNavigator 时设置默认屏幕

问题描述

我设置了我的 react-native 应用程序的路线,并试图结合 createStackNavigator 和 createDrawerNavigator。因此,我抽屉中的一个屏幕是 stackNavigator(例如:主页、新闻、图像。其中 Images 是 stackNavigator)并且 stackNavigator 有另外两个屏幕(例如:Feed 和 Grid),我试图将 Feed 设置为默认屏幕,所以我总是被重定向到 Feed。

我试过类似的东西:initialRouteName:'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
    }
);

标签: react-nativereact-navigation

解决方案


您应该为您的两个导航器设置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'
    }

);

推荐阅读