当我使用React 15时,我看到了关于这个问题的警告,我不记得确切的警告是什么。但是我现在使用的是React 16,我的应用程序正在突破这个错误,上面写着:
Trace: TypeError: React.__spread is not a function
我正在使用扩展操作符{...props}。这就是问题所在吗?
编辑: Babel没有转换扩展操作符,需要使用babel-plugin-transform-object-rest-spread来使用扩展操作符,我也尝试了同样的方法。但它也不起作用。进一步的研究表明,我们可能需要像'transform-es2015-spread', 'transform-es2015-parameters', 'transform-es2015-destructuring'这样的其他插件才能工作(?)
我尝试了各种插件/预置的组合,这些插件/预置仍然无法编译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']
}
};注意:,这是我最后一次尝试的配置。我也尝试过另外几种配置。
发布于 2017-11-28 12:49:25
您可以添加此依赖项:"babel-plugin-transform-object-rest-spread"
然后将其添加到.babelrc中:
{
"presets": [
["react"], ["env"]
],
"plugins": ["transform-object-rest-spread"]
}https://stackoverflow.com/questions/47530134
复制相似问题