2017-04-14 26 views
1

some code结构如下:巴贝尔预设反应的休息条件Array.map与三元运算

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

似乎这里是一个语法错误')}:'? – Jai

+0

对不起,这是一个错字!原来的代码没有它,正如我所说的,用'env'或'es2015'编译得很好。当添加“react”时它会中断。 – Alf

+0

看起来像一个babel解析器问题。用()包装最后一个箭头函数会有所帮助。 –

回答

0

相反,我会改变的条件的对象的值:

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