React-Native:应用程序尚未注册错误
我目前正在浏览React-Native教程。 我从入门教程开始,在那里我做了一个新的反应本地项目,并成功地设法运行我的设备上的项目。
然后,我开始了Props教程 ,我复制了代码片段,并尝试再次运行该项目,并在屏幕上显示以下错误消息 。
我想这是由于不匹配项目名称和您的注册组件造成的错误。
你有一个名字,即
react-native init AwesomeApp
但是在你的index.ios.js文件中注册其他组件
AppRegistry.registerComponent('Bananas', () => Bananas);
当它一定是
AppRegistry.registerComponent('AwesomeApp', () => Bananas);
尝试修复它。
大多数情况下,问题在于您有另一个react-native start
(即React Native Packager)服务器在另一个terminal或TMUX的另一个选项卡(如果您使用的是TMUX)上运行。
您需要find该进程并closures它,因此在运行react-native run-ios
,它将build立一个新的包装器服务器,以注册该特定应用程序。
只需使用以下方法find该过
ps aux | grep react-native
find进程ID(PID)并使用kill
命令终止包装程序(例如kill -9 [PID]
)。 您应该在macOS中findlaunchPackager.command
应用程序,不确定其他操作系统。
然后尝试再次运行run-ios
(或android)。 运行新的打包程序服务器后,您应该能够看到新的path,例如:
Looking for JS files in /Users/afshin/Desktop/awesome-app
首先你必须开始你的申请:
react-native start
然后,您必须将您的应用程序名称设置为registerComponent的第一个参数。
它工作正常。
AppRegistry.registerComponent('YourProjectName', () => YourComponentName);
像这样修改MainActivity
,
@Override protected String getMainComponentName() { return "Bananas"; // here }
我有同样的问题,对我来说,根本原因是我从另一个反应原生文件夹(AwesomeApp)运行(react-native start)打包程序,而我在另一个文件夹中创build另一个项目。
从新应用程序目录运行打包程序解决了这个问题。
而不是更改AppRegistry
的名称,
运行react-native init Bananas,这将为Bananas项目创build反应样板代码,并且AppRegistry.registerComponent
将自动指向香蕉
AppRegistry.registerComponent('Bananas', () => Bananas);
你需要在index.android.js / index.ios.js注册它
喜欢这个:
'use strict'; import { AppRegistry } from 'react-native'; import app from "./app"; AppRegistry.registerComponent('test', () => app);
这也可能是由于根组件名称以小写字母开头。
重新命名它,或者用PascalCase名称再次创build项目。
例如点燃新的HelloWord