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只能等等了