React native 不变违例:";“主要”;在运行react本机应用程序时未注册
这是我的文件夹结构。我已经用expo启动了这个应用程序。由于以下错误,我无法运行它。 Rootstack.jsReact native 不变违例:";“主要”;在运行react本机应用程序时未注册,react-native,expo,React Native,Expo,这是我的文件夹结构。我已经用expo启动了这个应用程序。由于以下错误,我无法运行它。 Rootstack.js import React from 'react'; import { createSwitchNavigator } from 'react-navigation'; import { createStackNavigator } from 'react-navigation-stack'; import LoginComponent from "../compone
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;
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);
main app.js
import App from './src/App.js';
export default App;
import App from './src/App.js';
// Use it here
import { AppRegistry } from 'react-native';
AppRegistry.registerComponent('main',() => App);
export default App;
错误
错误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.
这是我做错的地方。这个问题很可能与多次注册你的应用程序有关
createAppContainer()
AppRegistry.registerComponent('main',()=>App)
应该是配置导航后的最终声明
index.js
作为默认输出
import { createAppContainer } from 'react-navigation'
import App from './stack/RootStack'
//Remove these 2 lines below
import { AppRegistry } from 'react-native';
AppRegistry.registerComponent('main',() => App);
export default createAppContainer(App);
在主app.js中
import App from './src/App.js';
export default App;
import App from './src/App.js';
// Use it here
import { AppRegistry } from 'react-native';
AppRegistry.registerComponent('main',() => App);
export default App;
您在这里看到的有意义的例外是: 不变冲突:尝试注册两个具有相同名称RNCSAFearApprovider的视图
“main”尚未注册
是一种误导,它的发生只是因为另一个错误
发生
RNCSafeAreaProvider
异常,因为您的应用程序中有多个react native safe area context
副本。除了将其安装在应用程序中之外,您可能还使用了一个包含它作为依赖项的库。如果使用Thread,可以运行Thread why react native safe area context
,查看它的来源。尝试运行expo install react native safe area context
,如果没有帮助,您可以使用纱线分辨率覆盖依赖它的软件包使用的版本。非常感谢。为我工作