当我使用 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 回答
您可以添加此依赖项:
"babel-plugin-transform-object-rest-spread"
然后将其添加到.babelrc中: