当前位置:  开发笔记 > 编程语言 > 正文

升级到react-native 0.16错误

如何解决《升级到react-native0.16错误》经验,为你挑选了1个好方法。

我升级我的应用程序从反应原生0.15至0.16,但之后我发现了一个错误,我不知道如何解决它.

在此输入图像描述

TypeError:undefined is not an object (evaluating 'GLOBAL.Text={
get defaultProps(){
throw getInvalidGlobalUseError('Text')}}')

在Chrome调试器中:

Uncaught Error: Uncaught TypeError: Cannot set property 'Text' of undefined

谢谢

OBS:我在Android上运行.

我注意到更改应用程序名称解决了问题,我今天使用Evently作为应用程序名称.我试图重新创建我的虚拟机,但没有解决它.



1> IanVS..:

在我的情况下,我能够将原因缩小到我的.babelrc文件中的一个项目:

{
    "presets": ["es2015"]
}

一旦我删除它并重新启动打包器(确保也使用该--reset-cache标志),我就停止了错误.


更新2: 看起来React Native正在对其版本进行一些更改.因此,如果您使用的是该版本或更新版本,则应遵循以下网址中的说明:https://github.com/facebook/react-native/tree/master/babel-preset以指定您的设置..babelrc0.20.0.babelrc

更新:我已经进一步缩小了这一点transform-es2015-modules-commonjs,React-Native特别设置了一些选项{"strict": false, "allowTopLevelThis": true}.该es2015预设不设置这个选项,似乎阵营本地.babelrc不会覆盖它.如果你想使用es6模块并将它们转换为commonjs,你需要将以下内容放在你的.babelrc中:

{
    "plugins": [
        ["transform-es2015-modules-commonjs", {"strict": false, "allowTopLevelThis": true}]
    ]
}

注意,Babel 6,我更新为react-native 0.16.0,默认情况下不再包含任何变换.我最初没有意识到的是React-Native打包器提供了您可能需要的大多数转换(在他们的文档中列出:https://facebook.github.io/react-native/docs/javascript-environment. html #javascript-syntax-transformers),我认为"es2015"插件会干扰其中一些变形金刚.

我也尝试使用"babel-preset-react"(http://babeljs.io/docs/plugins/preset-react/),该插件似乎没有导致任何错误.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有