新的react-native app有'TypeError:babelHelpers.typeof不是函数'[iOS]

Pra*_*nth 20 ios babeljs react-native

使用最新版本的react-native创建的新项目在运行(/ debugging)时会抛出javascript错误.在模拟器上测试过.

[fatal][tid:main] TypeError: babelHelpers.typeof is not a function. (In 'babelHelpers.typeof(target)', 'babelHelpers.typeof' is undefined)
Run Code Online (Sandbox Code Playgroud)

今天安装了react-native客户端并使用创建了应用程序

react-native init AwesomeProject
Run Code Online (Sandbox Code Playgroud)

应用版本:

react-native-cli: 0.1.10
react-native: 0.20.0
node version: v5.6.0
Run Code Online (Sandbox Code Playgroud)

Kyl*_*ley 30

以下是解释此问题的评论:

https://github.com/facebook/react-native/issues/4844#issuecomment-204035720

总结一下:

Babel 'stage-0'通过'stage-3'包含预设'async-to-generator',这对于本身反应本身并非必需.

解决方案是使用非官方的babel预设 'react-native-stage-0'

例:

npm install babel-preset-react-native-stage-0 --save-dev
Run Code Online (Sandbox Code Playgroud)

.babelrc

{
  "presets": ["react-native-stage-0"]
}
Run Code Online (Sandbox Code Playgroud)

或装饰者支持

{
  "presets": ["react-native-stage-0/decorator-support"]
}
Run Code Online (Sandbox Code Playgroud)

清空缓存并重启

watchman watch-del-all

./node_modules/react-native/packager/packager.sh start --reset-cache
Run Code Online (Sandbox Code Playgroud)


Sam*_*osa 6

解决了将babel stage-1和react-native预设添加到项目根文件夹中的.babelrc的问题.

{
  "presets": ["stage-1", "react-native"],
}
Run Code Online (Sandbox Code Playgroud)

更多细节:https://github.com/facebook/react-native/issues/5747

  • 这不适合我.似乎人们有时能够按正确的按钮顺序使其暂时工作,但不能始终如一.似乎有更多的核心正在发生. (4认同)