我有一个数组,你可以在下面看到。如何将Selectfield中的数据插入prints.printMethod?
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>
答案 0 :(得分:1)
prints
是一个Object而不是数组类型,所以不能在这里使用push。
如果希望将值设置为单一深度,则可以直接将值分配给键。
类似的东西:
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
州的类型。