RN 升级 0.57.0

最近把RN从0.51.0升级到0.57.0,升级之后发现项目跑不起来了。google了半天终于解决了问题,这里做个记录。

升级

  • 升级 react native 到0.57.0 ,升级react 到16.5

  • 修改 babel-preset 依赖从 “babel-preset-react-native”: “^5” 改为 “metro-react-native-babel-preset”: “^0.45.0”,并更新.babelrc文件

{
    "presets": ["module:metro-react-native-babel-preset"]
  }
  • 增加 @babel/plugin-external-helpers

  • 增加 schedule@0.4.0

升级完上述依赖之后可能还会碰到 babel runtime 报错 此时需要增加"@babel/runtime": “^7.1.2”。

Android 和 iOS 还需要升级 native 的一些工具,按文档上的升级就行了,没什么大坑,这里不详细讲,参考官方文档。

填坑

react-native-scrollable-tab-view

升级完之后运行项目发现还是报错,原因是项目中用到了 react-native-scrollable-tab-view 这个三方库,代码中多了个逗号,去掉就行了。

const {shouldUpdated, …props, } = Props;

但是多人合作的项目中这么做不合适。目前这个库还没有发布新版本修复。一种做法是 fork 这个项目自己修改后再依赖修改后的库。查看这个库的 github,果然发现有人提 issue。实际上这个 bug 已经在 master 分支上已经修复,我们可以切换到 master 分支上

"react-native-scrollable-tab-view": "git+https://github.com/happypancake/react-native-scrollable-tab-view.git"

这里还有吐槽一下这个库,提供的 ScrollableTabBar 还有好几个 bug 没修,不知道下个 release 会不会一起修掉。

cookie 失效

修完上面的bug之后项目终于可以正常运行,但是这时候出现了更大的坑,cookie失效了。回滚新版本增加的 feature 代码,问题任然存在, 回退 rn 版本到 0.51.0 问题消失,升级到 0.57.0 问题出现,所以可以断定是高版本 rn 的问题。继续查阅 github 上的 issue 发现从 0.56.0 版本开始就有这个问题。解决方案是 在fetch 的时候加上 credentials: ‘include’

fetch(route, {method: 'GET', headers, credentials: 'include'})

加上之后解决 cookie 失效问题,踩坑之旅暂时告一段落。

总结

RN 开发相对于原生开发方便了很多,但是目前还是有很多坑,不过好在 RN 社区还算活跃,大部分问题都能解决。比如这次升级,碰到了很多意想不到的坑,好在 google 了一圈也都能够解决。

参考文献

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值