ReactNative升级问题:解决evaluating 'ReactInternals.ReactCurrentOwner'

写在前面:

最近在尝试上手RN,遇到了不少坑。React-Native目前最新版本是0.48, 从这个版本号可以看出来,React-Native这个框架还没有完全进入稳定期。每个版本都会存在相当的问题,后续版本修复的同时,又会引入别的问题或者引入不兼容(比如用的某个类被移除支持,被Deprecated,方法改变等)。做一次升级之后需要重新稳定,经常需要改动项目代码。

问题介绍

今天介绍一个遇到的坑,是升级RN版本导致的。刚开始接入的版本是0.41,后来因为想用SectionList(0.43版本之后提供),就想升级到0.43之后的版本。首先分享官方的升级指南,推荐大家升级前先阅读,我当时就是没看,直接问的同事,所以采用的是文章下面那种老式升级方法,也就是下面几个步骤:

  1. 修改packages.json里RN的版本号;
  2. 在工程目录下运行npm install;
  3. 在工程目录下运行react-native upgrade;
  4. clean build Android工程,进入RN页面(react-native start);
    本来看着挺简单的步骤,结果再次进入RN,页面长这样:


    RN错误.jpg

解决方案

拿着这个错误去google,在这个页面里找到了答案。
最高票答案蛮复杂的,当时看的我一脸懵逼。后来多看了几个答案,我推断是因为我只改了ReactNative的版本号而没有改React的版本号导致的。pakcages.json里各个包的版本号必须是互相兼容的,不然就会引起这种问题。
最后我在网上找了一个可用的版本号:

    "react": "16.0.0-alpha.6",
    "react-native": "0.44.3",

然后重新npm install走一遍流程就可以了。
当然我后续又遇到了Navigator这个类被Depreacated的问题,好像是为了让RN更好的配合Redux, 改成了用React-Navigation
总之RN现在还是蛮不稳定的,大家且用且珍惜。

PS:我没有尝试升级指南中写的第一种新式方法,不知道用这种方法会不会避免这个问题。但是我担心这种方法会强行覆盖一些自己的配置文件。大家有兴趣可以试试。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,098评论 25 708
  • 占有欲总是来的莫名其妙。 从小到大,我都算是个乖孩子吧,算是言听计从的,从来没对什么有过浓烈的占有欲。对于人,也没...
    昕昕相惜的楠阅读 152评论 4 2
  • 话说三天打鱼 两天晒网,前三天我己打鱼,今天我是不是应该晒网啦,不然对不起这千古名句……好吧!又在找借口推...
    那村的二丫阅读 249评论 0 0