React Native最近有大动作,于2019年3月12日发布新版本0.59。主要有两点值得升级:支持React Hooks;升级了JavaScriptCore,使Android性能有大幅提升。据用过的人说,长列表快速滑动而产生的白屏得到大大改善。这么好的东西得赶紧体验一下啊。
简单的执行npm install react-native@latest会导致很多配置文件得不到更新。react-native-git-upgrade在0.59已被废弃,现在推荐使用rn-diff-purge,并且从0.59开始支持基于rn-diff-purge的简单升级cli:react-native upgrade。不过当前项目版本是0.58.4,老老实实研究rn-diff-purge。
升级Recommended method
- Check the diff
登录rn-diff-purge网站,输入项目当前版本号:0.58.4;目标版本号:0.59.2,点击“Diff here”,会生成一个类似于git log的修改记录:
2. 手动修改差异
对照上面👆的修改记录,手动修改工程文件。0.58.4升级至0.59.2,大概有24处修改,工作量还好。版本间差异越小,升级工作量越少。
升级后的问题
1. make sure youre either running a metro server
升级成功后,运行报错,一直提示连接不到本地服务器。明明已经执行过react-native start,成功开启服务器了,却连不上。谷歌一下:
新版本直接把http协议给禁了,赶紧改回27
2. ViewPager、Slider从React Native核心库中移出,影响了第三方组件
我的项目报错如下:
分析具体错误,ViewPagerAndroid是 react-native-gesture-handler引用的,Slider是react-native-scrollable-tab-view引用的。react-native-gesture-handler是react-navigation的依赖,做项目不可能不用 react-navigation,而该组件暂时看不到支持react-native新版本的计划。
想用最新的React Native只能等等了