我正在尝试将BottomTabNavigator集成到StackNavigator中

时间:2019-05-23 16:22:44

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

我有一个堆栈导航器,可导航到所需的任何屏幕。但是我也有一个标签导航器,上面只有四个屏幕。

我想让Tab Navigator出现在登录和创建屏幕以外的每个屏幕上。

我尝试了多种组合这些方法的方法,但似乎没有效果

const stackNav = createStackNavigator({
  Login: {
    screen: LoginScreen
  },
  Scan: {
    screen: ScanScreen
  },
  Search: {
    screen: SearchScreen
  },
  Product: {
    screen: ProductScreen
  },
  Create: {
    screen: CreateScreen
  },
  Home: {
    screen: HomeScreen
  },
  Profile: {
    screen: ProfileScreen
  }
}, {
  headerMode: 'none',
  defaultNavigationOptions: {
    gesturesEnabled: false
  }
})

const tabNav = createBottomTabNavigator({
  HomeTab: {
    screen: HomeScreen,
  },
  ScanTab: {
    screen: ScanScreen,
  },
  SearchTab: {
    screen: SearchScreen,
  },
  ProfileTab: {
    screen: ProfileScreen,
  }
})


export default createAppContainer(stackNav)

1 个答案:

答案 0 :(得分:1)

在主堆栈中添加Tab Navigator堆栈,您的所有其他屏幕都将可用。这样您就可以轻松导航到这些屏幕。

const tabNav = createBottomTabNavigator({
  HomeTab: {
    screen: HomeScreen,
  },
  ScanTab: {
    screen: ScanScreen,
  },
  SearchTab: {
    screen: SearchScreen,
  },
  ProfileTab: {
    screen: ProfileScreen,
  }
})

const stackNav = createStackNavigator({
  Login: {
    screen: LoginScreen
  },
  Create: {
    screen: CreateScreen
  },
  // Tab Navigator screens 
  Home: { 
    screen : tabNav 
  }
}, 
{
   headerMode: 'none',
   defaultNavigationOptions: {
   gesturesEnabled: false
}}
);

export default createAppContainer(stackNav)