未启用可选链接ReactNative

时间:2018-10-02 05:24:37

标签: react-native babeljs optional-chaining

在react react native中运行android项目时出现此错误。

这是React本机版本“ react”的新安装:“ ^ 16.3.1”,“ react-native”:“ ^ 0.57.1​​”,

它给出了可选链接的错误。谁能帮助我如何在react native中启用可选链接。

Loading dependency graph, done.
BUNDLE [android, dev] ....../index.js ▓▓▓▓▓▓▓▓▓▓░░░░░░ 64.3% (667/832)::ffff:127.0.0.1 - - [02/Oct/2018:04:30:46 +0000] "GET /index.delta?platform=android&dev=true&minify=false HTTP/1.1" 500 - "-" "okhttp/3.10.0"
error: bundling failed: SyntaxError: C:\ReactNative\mrn\node_modules\react-native\Libraries\Components\Switch\Switch.js: Support for the experimental syntax 'optionalChaining' isn't currently enabled (103:41):

101 | // Support deprecated color props.
102 | let _thumbColor = thumbColor;

103 | let _trackColorForFalse = trackColor?.false;
| ^
104 | let _trackColorForTrue = trackColor?.true;
105 |
106 | // TODO: Remove support for these props after a couple releases.

Add @babel/plugin-proposal-optional-chaining (https://git.io/vb4Sk) to the 'plugins' section of your Babel config to enable transformation.
at _class.raise (C:\ReactNative\mrn\node_modules@babel\parser\lib\index.js:3939:15)
at _class.expectPlugin (C:\ReactNative\mrn\node_modules@babel\parser\lib\index.js:5253:18)
at _class.parseSubscript (C:\ReactNative\mrn\node_modules@babel\parser\lib\index.js:5959:12)
at _class.parseSubscript (C:\ReactNative\mrn\node_modules@babel\parser\lib\index.js:2716:51)
at _class.parseSubscripts (C:\ReactNative\mrn\node_modules@babel\parser\lib\index.js:5944:19)
at _class.parseSubscripts (C:\ReactNative\mrn\node_modules@babel\parser\lib\index.js:2669:52)
at _class.parseExprSubscripts (C:\ReactNative\mrn\node_modules@babel\parser\lib\index.js:5934:17)
at _class.parseMaybeUnary (C:\ReactNative\mrn\node_modules@babel\parser\lib\index.js:5903:21)
at _class.parseExprOps (C:\ReactNative\mrn\node_modules@babel\parser\lib\index.js:5812:21)
at _class.parseMaybeConditional (C:\ReactNative\mrn\node_modules@babel\parser\lib\index.js:5784:21)
BUNDLE [android, dev] ....../index.js ▓▓▓▓▓▓▓▓▓▓▓▓░░░░ 77.5% (752/854), failed.

3 个答案:

答案 0 :(得分:2)

该错误表明要添加@ babel / plugin-proposal-optional-chaining

尝试安装this

npm install --save-dev @babel/plugin-proposal-optional-chaining

答案 1 :(得分:2)

我通过在根目录中添加.babelrc文件来解决此问题

{
  "plugins": [
    "@babel/plugin-proposal-optional-chaining"
  ],
  "presets": [
    "react-native"
  ]
}

更改.babelrc文件后重新启动Metro

答案 2 :(得分:-1)

将我的应用程序从旧的本机版本升级到新版本后,我也遇到了这个问题。它需要在devDependencies中有一些babel库。尝试后这是我的devDependencies

  • “ devDependencies”:{    “ babel-jest”:“ 23.6.0”,    “ jest”:“ 23.6.0”,    “ metro-react-native-babel-preset”:“ 0.50.0”,    “ react-test-renderer”:“ 16.6.1”},“ jest”:{    “ preset”:“ react-native”}