首页 文章

`Trace:TypeError:React .__ spread不是函数`

提问于
浏览
0

当我使用 React 15 时,我看到了关于此的警告,我不记得警告究竟是什么 . 但我现在正在使用 React 16 并且我的应用程序正在打破这个错误说:

Trace: TypeError: React.__spread is not a function

我正在使用传播运营商 {...props} . 是这个问题吗?

Edit: Babel没有转换扩展运算符,需要使用 babel-plugin-transform-object-rest-spread 来使用扩展运算符,我尝试了同样的方法 . 但它也没有用 . 进一步的调查结果表明,我们可能需要一些像_627859这样的其他插件来工作(?) .

我尝试了所有插件/预设的组合,但仍未能在Babel中编译扩展运算符 .

下面给出了babel package.json:

"babel-core": "^6.25.0",
"babel-loader": "^7.1.1",
"babel-plugin-transform-es2015-destructuring": "^6.23.0",
"babel-plugin-transform-es2015-spread": "^6.22.0",
"babel-plugin-transform-es2015-parameters": "^6.24.1",
"babel-preset-env": "^1.6.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-es2015-tree-shaking": "^1.0.1",
"babel-preset-react": "^6.24.1",

和反应依赖:

"react": "^16.0.0",
"react-dom": "^16.0.0",
"react-redux": "^5.0.6",
"react-router-dom": "^4.1.2",

这更像是一个问题 . 而我使用的babel配置是:

const BABEL_PRESET = {
  loader: 'babel-loader',
  options: {
    presets: ['es2015', 'react'],
    plugins: ['transform-es2015-spread', 'transform-es2015-parameters', 'transform-es2015-destructuring']
  }
};

Note: 这是我上次尝试过的配置 . 我也试过了另外两种配置 .

1 回答

  • 0

    您可以添加此依赖项: "babel-plugin-transform-object-rest-spread"

    然后将其添加到.babelrc中:

    {
      "presets": [
        ["react"], ["env"]
      ],
      "plugins": ["transform-object-rest-spread"]
    }
    

相关问题