【问题标题】:Build a TabNavigator combined with Stack and Drawer构建一个结合 Stack 和 Drawer 的 TabNavigator
【发布时间】:2020-10-19 05:52:59
【问题描述】:

我目前已经构建了这些导航器:

const MainStackNavigator = () => {
return (
  <Stack.Navigator
  screenOptions={{
    cardStyle: {backgroundColor: theme['primaryColor']},
    header: () => <MenuComponent />,
  }}>
  <Stack.Screen name="Logins" component={LoginScreen} />
  <Stack.Screen name="Swipe" component={SwipeScreen} />
  <Stack.Screen name="List" component={ListScreen} />
  <Stack.Screen name="Detail" component={DetailScreen} />
</Stack.Navigator>
);
};

return (
  <Root>
    <NavigationContainer>
      <Drawer.Navigator
        screenOptions={{swipeEnabled: false}}
        drawerContent={(props) => <SidebarComponent {...props} />}
        initialRouteName="Login">
        <Drawer.Screen name="List" component={MainStackNavigator} />
      </Drawer.Navigator>
    </NavigationContainer>
  </Root>
);

我需要另外添加一个 TabNavigator 到“滑动”屏幕,以便我可以再构建 3 个屏幕并在它们上滑动

【问题讨论】:

    标签: javascript react-native stack-navigator tabnavigator


    【解决方案1】:

    您可以使用所需的屏幕创建TabNavigator。然后将其包含在您的 MainStackNavigator 而不是 Swipe 屏幕组件中。

    首先,您可以像这样创建您的TabNavigator

    import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
    
    const Tab = createBottomTabNavigator();
    
    const TabNavigator = () => {
      return (
        <Tab.Navigator>
          <Tab.Screen name="Screen1" component={Screen1} />
          <Tab.Screen name="Screen2" component={Screen2} />
          <Tab.Screen name="Screen3" component={Screen3} />
        </Tab.Navigator>
      );
    };
    

    然后,将其包含在您的 MainStackNavigator 中,而不是像这样的 Swipe 屏幕组件中。

    const MainStackNavigator = () => {
      return (
        <Stack.Navigator
          screenOptions={{
            cardStyle: { backgroundColor: theme['primaryColor'] },
            header: () => <MenuComponent />,
          }}>
          <Stack.Screen name="Logins" component={LoginScreen} />
          <Stack.Screen name="Tabs" component={TabNavigator} />
          <Stack.Screen name="List" component={ListScreen} />
          <Stack.Screen name="Detail" component={DetailScreen} />
        </Stack.Navigator>
      );
    };
    

    如果您对此有任何问题,请在此处发表评论。

    【讨论】:

    • 非常感谢!您是否知道向选项卡导航器添加分页的可能方法或指向一个好的资源来阅读它? :) 谢谢你
    猜你喜欢
    • 2017-12-22
    • 2021-12-26
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-26
    • 2014-03-28
    相关资源
    最近更新 更多