2016-03-01 36 views
0

我有一個數組,你可以在下面看到。我怎樣才能從一個Selectfield插入數據到prints.printMethod?ReactJS如何將數據從SelectField推送到數組中的對象?

selectedOrder: { 
    category: {}, 
    product: {}, 
    brand: {}, 
    prints: { 
    printMethod: {}, 
    height: '', 
    width: '', 
    colors: '' 
    } 
} 

我的代碼如下是onChange函數。我不確定我是否缺少一些東西。我希望有一個人可以幫助我。

onBrandingsChange = (event, index, value) => { 
    var newSelect = this.state.selectedOrder; 
    newSelect.prints.push(value); 
    this.setState({selectedOrder: newSelect}); 
    } 

<SelectField value={this.state.selectedOrder.prints.printMethod} onChange={this.onBrandingsChange}> 
    {_.map(this.state.brandings, (b) => { 
     return <MenuItem value={b.name} primaryText={b.name} key={b.id}/>; 
    })} 
</SelectField> 

回答

1

prints是一個對象不是數組類型,所以推不能在這裏使用。

如果您希望它是單一深度,您可以直接將值分配給該鍵。

喜歡的東西:

onBrandingsChange = (event, index, value) => { 
    var newSelect = this.state.selectedOrder; 
    // set it 
    newSelect.prints.printMethod = value 
    // or use assign 
    newSelect.prints = Object.assign(newSelect.prints, { printMethod: value }); 

    this.setState({selectedOrder: newSelect}); 
} 

,如果你想這是你需要改變你的類型狀態selectedOrder的陣列。

+0

哇!謝謝您的幫助。它解決了我的問題 – dczii

相關問題