传播运算符在react抛出意外令牌错误

IT技术 reactjs ecmascript-6
2021-04-03 13:57:56

这是我包含扩展运算符的代码

style={{ ...styles.detailsRow.icon, alignSelf: 'centre' }}


我需要安装或添加哪些东西才能使其运行?

还有它的等价物是es2015什么?

3个回答

您需要配置 Babel 以使用 transform-object-rest-spread 插件。详情参考以下链接:https : //babeljs.io/docs/plugins/transform-object-rest-spread/

您之前发布的错误消息中提到了 eslint-config-keystone 包。这个包需要过时的 eslint 版本。尝试删除 eslint-config-keystone 依赖项并再次安装 babel 插件。
2021-05-24 13:57:56
你具体跑了什么?此包不涉及 eslint,这似乎与您的项目无关
2021-06-01 13:57:56
您也可以使用 babel-preset-stage-0,并将其添加到您的 .babelrc 中 "presets": ["es2015", "react", "stage-0"] 只需运行npm install --save-dev babel-preset-stage-0
2021-06-03 13:57:56
我之前安装过eslint,所以我删除了它并再次安装了transform-object-rest-spread。我遵循了链接中给出的所有方法,但它仍然给我那个错误。你知道 es2015 等效的代码吗?
2021-06-17 13:57:56
我做了上面的步骤仍然得到同样的错误“Unexpected token this”
2021-06-18 13:57:56

你缺少一个 babel 预设,stage-0

npm install --save-dev babel-preset-stage-0

如果您有.bablerc文件添加以下内容。

{
  "presets":[
    "es2015", "react", "stage-0"
  ]
}

或者添加到 loader 中的 webpack 配置。

任何遇到此问题的人都应该知道不再支持 babel 预设。babeljs.io/blog/2018/07/27/removing-babels-stage-presets
2021-05-31 13:57:56

我遇到了同样的问题,我发现的解决方法是添加experimentalObjectRestSpread到以下ecmaFeatures设置中.eslintrc

"parserOptions": {
  "ecmaVersion": 6,
  "sourceType": "module",
  "ecmaFeatures": {
     "jsx": true,
     "experimentalObjectRestSpread": true
  }
}