升级到react-native 0.16错误

Dan*_*rin 10 react-native

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

在此输入图像描述

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

在Chrome调试器中:

Uncaught Error: Uncaught TypeError: Cannot set property 'Text' of undefined
Run Code Online (Sandbox Code Playgroud)

谢谢

OBS:我在Android上运行.

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

Ian*_*nVS 10

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

{
    "presets": ["es2015"]
}
Run Code Online (Sandbox Code Playgroud)

一旦我删除它并重新启动打包器(确保也使用该--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}]
    ]
}
Run Code Online (Sandbox Code Playgroud)

注意,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/),该插件似乎没有导致任何错误.


Dan*_*rin 0

我解决问题。我认为这是因为项目文件夹中的权限。我在文件夹中运行 chown 来纠正权限问题,现在一切正常。

谢谢