在DrawerNavigator屏幕中显示TabBar

时间:2017-12-04 13:28:23

标签: reactjs react-native react-navigation tabnavigator stack-navigator

我目前有这种结构:

const Tabs = TabNavigator({
  Home: {screen: Home},
  Store:{screen: Store}
  More: {screen: More,
    navigationOptions: {
      tabBarLabel: 'More',
      tabBarIcon: <Entypo name='dots-three-horizontal' size={25}/>,
      header: null
      },
    }
  },
  {
  initialRouteName: 'Home',
  tabBarPosition: 'bottom',
  navigationOptions: ({ navigation }) => ({
            tabBarOnPress: (scene, jumpToIndex) => {
                if (scene.route.routeName === "More") {
                  navigation.navigate('DrawerToggle')
                }
                else{
                  jumpToIndex(scene.index);
                }
            },
        }),
      },
    )


const Drawer = DrawerNavigator(
  {
   Tabs: {screen: Tabs,
     navigationOptions: {
           drawerLabel: () => null
      }
   },
   Profile: {screen: Profile},
   Search: {screen: Search}
  },
  {
   initialRouteName: 'Tabs',
   headerMode: 'none',
   drawerPosition: 'right'
  }
)


export const Root = StackNavigator(
  {
  LoginScreen: {screen: Login},
  Drawer: {screen: Drawer},
 },
  {
   initialRouteName: 'LoginScreen'
  }
)

一切都很好。当我点击(例如)“个人资料”时,页面正常加载,当点击“更多”时,抽屉菜单会打开。

我想要实现的功能是我想在'Profile'页面(DrawerNavigator屏幕)中显示TabBar。怎么可能?

1 个答案:

答案 0 :(得分:0)

const Drawer = DrawerNavigator(
  {
   Profile: {screen: Tabs},
   Search: {screen: Search}
  }

您可以将导航器嵌套在另一个导航器中。选项卡导航器是一个组件,您可以将该组件用作不同导航器的“屏幕”。

导航器是一个组件。屏幕必须是一个组件。