我正在尝试从react native 0.55.4更新为react native0.58.4。
我面临的问题是我的应用程序无法连接到metro bundler。尽管adb反向,模拟器和物理设备都无法连接到它。我可以在设备的chrome浏览器中很好地打开URL,但应用程序无法连接到它。
我遵循了变更日志中的更新通知,生成了以下包.json:
"dependencies": {
"react": "16.6.3",
"react-native": "0.58.4"
},
"devDependencies": {
"babel-core": "7.0.0-bridge.0",
"babel-jest": "24.1.0",
"jest": "24.1.0",
"metro-react-native-babel-preset": "0.51.1",
"react-test-renderer": "16.6.3"
},
"jest": {
"preset": "react-native"
}
我遗漏了那些不重要的包裹。
我还将.babelrc文件更改为:
{
"presets": ["module:metro-react-native-babel-preset"]
}
环境信息:
React Native Environment Info:
System:
OS: Windows 10
CPU: (8) x64 Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz
Memory: 3.21 GB / 15.93 GB
Binaries:
Yarn: 1.7.0 - C:Program Files (x86)Yarnbinyarn.CMD
npm: 6.1.0 - C:Program Filesnodejsnpm.CMD
IDEs:
Android Studio: Version 3.3.0.0 AI-182.5107.16.33.5264788
任何帮助都将不胜感激。
react-native
应用程序时,仅仅更新package.json
是不够的。在升级过程完成之前,必须对其他文件进行其他更改。
一个好的起点是查看0.55.4
和0.58.4
中代码之间的差异。您可以通过查看rn-diff-purge
上的gitdiff来找到这些更改。如果您查看下面的链接,您会发现有比package.json
中的更改多得多的更改。
https://github.com/pvinis/rn-diff-purge/compare/version/0.55.4...version/0.58.4
其中一些更改是多余的,可能不会实际影响应用程序的运行,其他更改将是关键的,必须进行。不幸的是,git差异并没有告诉我们必须做什么,我们可以错过什么,它只是告诉我们差异。我的建议是做出它所建议的所有改变。
查看您开始使用然后转到的应用程序的普通版本也可能是有益的。您可以使用以下代码在特定版本创建react原生应用程序:
react-native init newproject --version react-native@0.55.4
如果你看一下官方的升级文档,上面写着:
一些升级需要手动步骤,例如0.28到0.29,或0.56到0.57.升级时一定要查看发行说明,这样你就可以确定你的特定项目可能需要的任何手动更改。
https://facebook.github.io/react-native/docs/upgrading#manual-升级
因此,对于您必须进行的任何特定更改,查看发行说明也是值得的。
最糟糕的情况是,使用0.58.4
创建一个新的工作应用程序,复制您的javascript代码,安装并链接您的依赖项,然后从那里开始。
祝你好运,这可能很棘手,但只要有耐心,你就会成功的。