【问题标题】:How to use "createStackNavigator" and "createMaterialTopTabNavigator" together?如何一起使用“createStackNavigator”和“createMaterialTopTabNavigator”?
【发布时间】:2020-02-08 10:03:35
【问题描述】:

在我的 react native 应用程序中,我使用的是“createStackNavigator”,但是当我结合“createMaterialTopTabNavigator”时,它给出了错误。我如何同时使用两个导航?我尝试了aolot,但无法解决此问题。在我的代码中,我使用 createStackNavigator 两次,一次用于家庭,另一次用于 tabScreen,当我单独使用时,它都可以正常工作,但无法组合。

Main.js

const Home = createStackNavigator(
    { 
        Profile: Profile,
        Feed: Feed,
        Chemein: Chemein,
        Graph: Graph,
    },
      {
          initialRouteName: 'Profile',

            defaultNavigationOptions: { 
            headerStyle: {
                backgroundColor: '#744DD2',
            },
            headerTintColor: '#fff',
            headerTitleStyle: {
                fontWeight: 'bold',
            },
        },
    },

);

const TabScreen = createMaterialTopTabNavigator(
    {
        Clubs: { screen: Clubs },
        Members: { screen: Members },
    },
    {
        tabBarPosition: 'top',
        swipeEnabled: true,
        tabBarOptions: {
            activeTintColor: '#ffff',
            inactiveTintColor: '#ccc',
            style: {
                backgroundColor: '#744DD2',
            },
        },
    }
);

const TopTab = createStackNavigator({
    TabScreen: {
        screen: TabScreen,
        navigationOptions: {
            headerStyle: {
                backgroundColor: '#744DD2',
            },
            headerTintColor: '#FFFFFF',
            title: 'Clubs',
        },
    },
});

 const container = createAppContainer(Home);
// const container = createAppContainer(TabScreen );

 export default container;

【问题讨论】:

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


    【解决方案1】:

    我做过这样的事情:

    const TabNavigator = createBottomTabNavigator(
      {
        Home: AppStack,
        Notification: Notifications,
        Account: SettingsScreen,
      },
      {
        defaultNavigationOptions: ({navigation}) => ({
          tabBarIcon: ({focused, tintColor}) =>
            getTabBarIcon(navigation, focused, tintColor),
        }),
        tabBarOptions: {
          activeTintColor: colors.tealC,
          inactiveTintColor: 'gray',
        },
      },
    );
    

    我的appstack 是我的堆栈导航器,代码如下:

    const AppStack = createStackNavigator(
      {
        HomeScreen: {
          screen: Home,
        },
        AirportMeeting: {
          screen: AirportMeeting,
        },
        MeetingPoint: {
          screen: MeetingPoint,
        },
        DriverDetails: {
          screen: DriverDetails,
        },
        SightSeeing: {
          screen: SightSeeing,
        },
        HotelDetails: {
          screen: HotelDetails,
        },
        FlightDetails: {
          screen: FlightDetails,
        },
        AddSight: {
          screen: AddSight,
        },
        SightSeeingPurchase: {
          screen: SightSeeingPurchase,
        },
        AddMeals: {
          screen: AddMeals,
        },
        HomeCard: {
          screen: HomeCard,
        },
        Trips: {
          screen: Trips,
        },
        FAQ: {
          screen: FAQ,
        },
        Support: {
          screen: Support,
        },
        BeforeTravel: {
          screen: BeforeTravel,
        },
        Weather: {
          screen: Weather,
        },
      },
      {
        defaultNavigationOptions: {
          headerShown: false,
        },
        initialRouteName: 'HomeCard',
        transitionConfig: () => fromRight(),
      },
    );
    

    所以基本上在我的 tabnavigator 的家庭路线中,我使用了 Appstack,它是一个堆栈导航器。

    以防万一你好奇,我 alos 做了一个 switchnavigator,我在其中添加了选项卡导航器和其他堆栈导航器,所以一切皆有可能:

    const navigation = createAppContainer(
      createSwitchNavigator(
        {
          App: TabNavigator,
          Auth: AuthStack,
          SplashScreen: SplashScreen,
        },
        {
          initialRouteName: 'SplashScreen',
        },
      ),
    );
    

    【讨论】:

    • 两者在同一个文件中?
    • 问题是关于 createMaterialTopTabNavigator。你能举个例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 2018-11-27
    • 2020-01-13
    • 2019-01-30
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    相关资源
    最近更新 更多