我目前正在阅读 React-Native 教程。我从入门教程开始,在那里我创建了一个新的 React Native 项目并成功地在我的设备上运行了该项目。
然后我开始了Props 教程,我复制了代码片段并尝试再次运行该项目并在我的屏幕上显示以下错误消息:

我目前正在阅读 React-Native 教程。我从入门教程开始,在那里我创建了一个新的 React Native 项目并成功地在我的设备上运行了该项目。
然后我开始了Props 教程,我复制了代码片段并尝试再次运行该项目并在我的屏幕上显示以下错误消息:

我猜这是由于项目名称和您注册的组件不匹配导致的错误。
你用一个名字启动了项目,即
react-native init AwesomeApp
但是在您的 index.ios.js 文件中您注册了其他组件
AppRegistry.registerComponent('Bananas', () => Bananas);
当它必须是
AppRegistry.registerComponent('AwesomeApp', () => Bananas);
如果您的组件名称匹配,请确保您没有在另一个终端中运行任何其他 react-native/node 进程。
大多数情况下,问题是您有另一个react-native start(即 React Native Packager)服务器在另一个终端或 TMUX 的另一个选项卡上运行(如果您使用的是 TMUX)。
您需要找到该进程并关闭它,react-native run-ios例如在运行后,它将建立一个新的为该特定应用程序注册的打包服务器。
只需使用以下方法找到该过程:
ps aux | grep react-native
找到进程 id (PID) 并使用kill命令 (例如kill -9 [PID])终止打包进程。您应该launchPackager.command在 macOS 中找到该应用程序,不确定其他操作系统。
然后尝试再次运行run-ios(或android)。运行新的打包服务器后,您应该能够看到新路径,例如:
Looking for JS files in
/Users/afshin/Desktop/awesome-app
我的解决方案是在“AppDelegate.m”中更改module名称
从
moduleName:@"AwesomeProject"
到
moduleName:@"YourNewProjectName"
修改MainActivity成android/app/src/main/java/com/your-package-name/MainActivity.java这样,
@Override
protected String getMainComponentName() {
return "Bananas"; // here
}