不变违规:运行反应本机应用程序时尚未注册“main”

sno*_*ell 5 react-native expo

这是我的文件夹结构。我已经通过世博会启动了这个应用程序。不知何故,由于以下错误,我无法运行它。 在此输入图像描述

根栈.js

import React from 'react';
import { createSwitchNavigator } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';


import LoginComponent from "../component/login/login";
import HomeComponent from "../component/home/home"

const AuthNav = createStackNavigator({
    Login:{
        screen : LoginComponent,
        navigationOptions:{
            headerShown: false
        }
    },
});

const AppNav = createStackNavigator({
    Home:{
        screen : HomeComponent,
        tabBarLabel: 'Home',
        navigationOptions:{
            headerShown: false
        }
    },
   
});

const switchNav = createSwitchNavigator({
    AuthNav,
    AppNav
},{
    initialRouteName:"AuthNav"
});


export default switchNav;
Run Code Online (Sandbox Code Playgroud)

stack 文件夹内的 App.js

import { createAppContainer } from 'react-navigation'
import App from './stack/RootStack'
import { AppRegistry } from 'react-native';
AppRegistry.registerComponent('main',() => App);

export default createAppContainer(App);

Run Code Online (Sandbox Code Playgroud)

主应用程序.js

import App from './src/App.js';
export default App;
Run Code Online (Sandbox Code Playgroud)

错误

Invariant Violation: Tried to register two views with the same name RNCSafeAreaProvider
Run Code Online (Sandbox Code Playgroud)

错误2

Invariant Violation: "main" has not been registered. This can happen if:
* Metro (the local dev server) is run from the wrong folder. Check if Metro is running, stop it and restart it in the current project.
* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called.
Run Code Online (Sandbox Code Playgroud)

我在这里做错了哪一部分。

bre*_*tne 4

您在这里看到的有意义的异常是:

不变违规:尝试注册两个同名的视图 RNCSafeAreaProvider

"main" has not been registered是一个转移注意力的事情,它只是因为另一个错误而发生的。

发生异常RNCSafeAreaProvider是因为您的应用程序中有多个副本react-native-safe-area-context。除了将其安装在您的应用程序中之外,您可能正在使用包含它作为依赖项的库。如果你使用yarn,你可以跑去yarn why react-native-safe-area-context看看它是从哪里来的。尝试运行expo install react-native-safe-area-context,如果这没有帮助,您可以使用纱线分辨率来覆盖依赖于它的包使用的版本。