Babel-preset-react使用三元运算符破坏条件Array.map

时间:2017-04-14 11:00:07

标签: javascript reactjs ecmascript-6 babeljs

我的some code具有以下结构:

someArray.map(
  condition ?
    element => ({
      field: element.someField 
    }) :
    element => ({
      field: element.someOtherField
    })  

我正在使用Webpack 2.3.3构建我的代码,当我只使用babel-preset-es2015babel-preset-env时,一切都很好,但如果我将react添加到我的预设中,我会得到以下内容:

ERROR in ./src/load/heatmapAxisCategories.js
Module build failed: SyntaxError: Invalid left-hand side in object destructuring pattern (38:27)

  36 |             isDifferential(experiment) ?
  37 |                 columnHeader => ({
> 38 |                     label: columnHeader.displayName,
     |                            ^
  39 |                     id: columnHeader.id,
  40 |                     info:{
  41 |                         trackId:columnHeader.id,

这迫使我有两个配置块用于JS和JSX文件,一个用env,另一个用react。但是上面的语法似乎无害。你认为这是一个错误还是我缺少的东西?

1 个答案:

答案 0 :(得分:0)

相反,我会在条件中更改对象中的值:

someArray.map(element => ({
   field: condition ? element.someField : element.someOtherField
}))