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