2017-10-21 82 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"