2017-10-21 78 views
1

我請求這樣前面:如何在reactjs請求中實現條件?

let data = { 

     chartLibraryType : this.state.chartCategory == 'highChart'? "HIGH_CHARTS" : "C3", 

    }; 

現在我需要用3實現隨着highcharts和C3我需要通過D3也。

let data = { 

     chartLibraryType : if(this.state.chartCategory == 'highChart'){ 
          "HIGH_CHARTS" 
         }else if(this.state.chartCategory == 'c3Chart'){ 
          "C3" 
         }else if(this.state.chartCategory == 'D3Chart'){ 
          "D3" 
          }, 

    }; 

這是實現當我們有超過2個的方式嗎?

回答

4

首先,你可以創建一個dictionary

let dictionary={ 
    "highChart" : "HIGH_CHARTS", 
    "c3Chart" : "C3", 
    "D3Chart" : "D3" 
} 

然後你必須通過狀態爲使用bracket符號爲字典的關鍵。

let data = { 
    chartLibraryType : dictionary[this.state.chartCategory] 
} 
+1

感謝快速反應 –

0

你可以使用一個開關,如Si:

let data = { chartLibraryType: '' } 

switch (this.state.chartCategory) { 
    case 'highChart': 
    data.chartLibraryType = 'HIGH_CHARTS' 
    break 
    case 'c3Chart': 
    data.chartLibraryType = 'C3' 
    break 
    case 'D3Chart': 
    data.chartLibraryType = 'D3' 
    break 
    // Add as much `case` as you wish without forgetting the break clause 
    // If you'd like to fallback to a default value 
    default: 
    break 
} 

我也邀請您來看看書這個偉大的收集"You don't know JS"