2017-04-14 4 views
1

条件付きArray.mapに私は次のような構造でsome codeを持っている:私はbabel-preset-es2015babel-preset-envを使用する場合、私はWebPACKの2.3.3と私のコードをビルドしていバベル・プリセット・反応休憩三項演算子

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

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, 

これはを持つ2つのconfig JSとJSXファイル用のブロック、envと1、および別のを持っている私を強制的に:私は私のプリセットにreactを追加した場合、すべての罰金は、私は、次の取得しますである。しかし、上記の構文は無害なようです。あなたはそれがバグだと思いますか、私が紛失しているものがありますか?

+1

は}) 'ここでは、構文エラーをしているようですか:'? – Jai

+0

申し訳ありません、それはタイプミスでした!元のコードはそれを持っておらず、私が言ったように 'env'や' es2015'でうまくコンパイルします。 'react'を追加すると壊れます。 – Alf

+0

バベルパーサーの問題のようです。最後の矢印機能を()で囲むと便利です。 –

答えて

0

代わりに私は条件にオブジェクトの値を変更します

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