React native 如何从登录屏幕导航到包含底部选项卡的主屏幕

React native 如何从登录屏幕导航到包含底部选项卡的主屏幕,react-native,react-navigation,React Native,React Navigation,请帮忙,我不知道该怎么做, 我不知道如何从登录页面导航到包含选项卡的主屏幕,我只知道如何从登录页面导航到主屏幕,但没有底部选项卡 我得到的错误是:路由“App”的组件必须是React组件 const HomeStack = createStackNavigator( { //Defination of Navigaton from home screen Home: { screen: HomeScreen }, ViewBookings: { scree

请帮忙,我不知道该怎么做, 我不知道如何从登录页面导航到包含选项卡的主屏幕,我只知道如何从登录页面导航到主屏幕,但没有底部选项卡

我得到的错误是:路由“App”的组件必须是React组件

const HomeStack = createStackNavigator(
  {
    //Defination of Navigaton from home screen
    Home: { screen: HomeScreen },
    ViewBookings: {
      screen: ViewBookingsScreen,
      navigationOptions: {
        //Header customization of the perticular Screen
        headerStyle: {
          backgroundColor: '#0892d0',
        },
        headerTintColor: '#FFFFFF',
        title: 'View All Bookings',
        //Header title
      }, 
     },

  },
  {
    defaultNavigationOptions: {
      //Header customization of the perticular Screen
      headerStyle: {
        backgroundColor: '#0892d0',
      },
      headerTintColor: '#FFFFFF',
      title: 'Welcome, User',
      //Header title
    },
  }
);
const AuthStack =  createStackNavigator({ SignIn: SignInScreen });
const App = createSwitchNavigator(
    {
      AuthLoading: AuthLoadingScreen,
      App: TabStack,
      Auth: AuthStack,
    },
    {
      initialRouteName: 'AuthLoading',
    }




);
const TabStack = createBottomTabNavigator(
  {
    Home : { screen: HomeStack },

    Bookings: { screen: BookingStack},
    Reminders: { screen: ReminderStack},
  },

  {
    defaultNavigationOptions: ({ navigation }) => ({
      tabBarIcon: ({ focused, horizontal, tintColor }) => {
        const { routeName } = navigation.state;
        let IconComponent = Ionicons;
        let iconName;
        if (routeName === 'Home') {
          iconName = `ios-home`;
        } else if (routeName === 'Bookings') {
          iconName = `ios-book`;
        } else if (routeName === 'Reminders') {
          iconName = `ios-alarm`;
        }

        return <IconComponent name={iconName} size={25} color={tintColor} />;
      },
    }),
    tabBarOptions: {
      activeTintColor: '#0892d0',
      inactiveTintColor: 'gray',
    },
  }
);

export default createAppContainer(App);
const HomeStack=createStackNavigator(
{
//从主屏幕定义导航
主屏幕:{屏幕:主屏幕},
浏览及预订:{
屏幕:查看预订屏幕,
导航选项:{
//垂直屏幕的标题自定义
头型:{
背景颜色:“#0892d0”,
},
HeaderIntColor:“#FFFFFF”,
标题:“查看所有预订”,
//标题
}, 
},
},
{
默认导航选项:{
//垂直屏幕的标题自定义
头型:{
背景颜色:“#0892d0”,
},
HeaderIntColor:“#FFFFFF”,
标题:“欢迎,用户”,
//标题
},
}
);
const AuthStack=createStackNavigator({SignIn:SignInScreen});
const App=createSwitchNavigator(
{
AuthLoading:AuthLoadingScreen,
应用程序:TabStack,
Auth:AuthStack,
},
{
initialRouteName:“AuthLoading”,
}
);
const TabStack=createBottomTabNavigator(
{
主页:{screen:HomeStack},
预订:{screen:BookingStack},
提醒:{屏幕:提醒斯塔克},
},
{
defaultNavigationOptions:({navigation})=>({
tabBarIcon:({聚焦、水平、着色})=>{
const{routeName}=navigation.state;
让IconComponent=Ionicons;
让我来;
如果(routeName==='Home'){
iconName='ios主页';
}else if(routeName==‘预订’){
iconName=`ios图书`;
}否则如果(routeName===‘提醒’){
iconName=`ios报警`;
}
返回;
},
}),
选项卡选项:{
activeTintColor:“#0892d0”,
颜色:“灰色”,
},
}
);
导出默认createAppContainer(应用程序);

在主屏幕中,如果您正在导入登录组件,如

import {Whatever} from 'Wherever'
换成

import Whatever from 'Wherever'

试着去掉花括号。因为正如我看到的,您在导出时使用了默认值。因此,当我们使用默认值时,在导入时不使用大括号。

一旦身份验证成功,您必须调用

这个.props.navigation.navigate(“Home”)

这将用户导航到主屏幕


您可以根据自己的要求决定路线

如果问题中没有包含这些文件。你怎么知道他的文件夹结构的?