代码之家  ›  专栏  ›  技术社区  ›  Subhendu Kundu

如何在不从tabnavigator的某个选项卡导航到屏幕的情况下打开抽屉?

  •  0
  • Subhendu Kundu  · 技术社区  · 7 年前

    我正试图打开一个抽屉从我的标签称为个人资料,如下所示。当我单击profile选项卡时,它会从profilenavigator打开主屏幕。这是对的,但我想阻止,只有打开抽屉,没有默认导航。我该怎么做?profilenavigator也阻止打开我的下一个标签,那就是home,知道为什么吗?但是我可以点击历史屏幕然后回到主屏幕。

    const ProfileNavigator = createDrawerNavigator({
      Home: {
        screen: HomeScreen,
      },
      Notifications: {
        screen: ExampleScreen,
      }
    });
    
    const DashboardTabNav = createBottomTabNavigator({
      Profile: {
        screen: ProfileNavigator,
        navigationOptions: ({navigation}) => ({
          tabBarOnPress: (tab) => {
            navigation.openDrawer();
          }
        })
      },
      Home: Dashboard,
      History: SettingsScreen,
      Cart: CartScreen
    })
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Subhendu Kundu    7 年前

    啊,修好了。 如果有人想找个例子, 您需要在createBottomTabNavigator中添加createDrawerNavigator。我是用另一种方式做的。 例如,

    const ProfileNavigator = createDrawerNavigator({
      Drawer: DashboardTabNav
    }, {
      initialRouteName: 'Drawer',
      contentComponent: ExampleScreen,
      drawerWidth: 300
    
    });
    
    // Manifest of possible screens
    const PrimaryNav = createStackNavigator({
      DashboardScreen: { screen: ProfileNavigator },
      LoginScreen: { screen: LoginScreen },
      LaunchScreen: { screen: LaunchScreen },
      UpdateUserScreen: { screen: UpdateUserScreen }
    }, {
      // Default config for all screens
      headerMode: 'none',
      initialRouteName: 'LoginScreen',
      navigationOptions: {
        headerStyle: styles.header
      }
    });
    export default createAppContainer(PrimaryNav);
    
    推荐文章