确定哪个 [SelectField] [DropDownMenu] 触发了 onChange
Identify which [SelectField] [DropDownMenu] fired onChange
我正在以编程方式呈现多个 SelectField 和 DropDownMenu 组件。我正在尝试使用单个 onChange 处理程序函数,但我还没有找到引用触发事件的特定 SelectField / DropDownMenu 的方法,因此我可以相应地更新状态。
为 onChange 事件传递的参数似乎不包含任何有助于识别触发组件的信息。有什么想法吗?
下面是如何完成此操作的示例
https://jsfiddle.net/davidebarros/k9ng7bk9/
这是假设您熟悉 es6 箭头函数语法。
state = {
dropDown1: 1,
dropDown2: 4,
selectfield1: null,
selectfield2: null
}
onChange = (type) => (event, index, value) => {
this.setState({
[type]: value
})
//In your render method
<SelectField
floatingLabelText="Select Field 1"
value={this.state.selectfield1}
onChange={this.onChange("selectfield1")}>
<MenuItem value={1} primaryText="Select 1, value 1" />
<MenuItem value={2} primaryText="Select 1, value 2" />
</SelectField>
我正在以编程方式呈现多个 SelectField 和 DropDownMenu 组件。我正在尝试使用单个 onChange 处理程序函数,但我还没有找到引用触发事件的特定 SelectField / DropDownMenu 的方法,因此我可以相应地更新状态。 为 onChange 事件传递的参数似乎不包含任何有助于识别触发组件的信息。有什么想法吗?
下面是如何完成此操作的示例
https://jsfiddle.net/davidebarros/k9ng7bk9/
这是假设您熟悉 es6 箭头函数语法。
state = {
dropDown1: 1,
dropDown2: 4,
selectfield1: null,
selectfield2: null
}
onChange = (type) => (event, index, value) => {
this.setState({
[type]: value
})
//In your render method
<SelectField
floatingLabelText="Select Field 1"
value={this.state.selectfield1}
onChange={this.onChange("selectfield1")}>
<MenuItem value={1} primaryText="Select 1, value 1" />
<MenuItem value={2} primaryText="Select 1, value 2" />
</SelectField>