gpt4 book ai didi

javascript - 引用资料 onChange 处理程序中的 UI SelectField 组件

转载 作者:太空宇宙 更新时间:2023-11-04 16:30:09 25 4
gpt4 key购买 nike

我有一个包含很多 SelectField 组件的表单(15+) - 我试图避免使用多个更改处理程序函数,但我正在努力找出如何引用触发更改的特定选择这样我就可以相应地更新状态。

我尝试添加一个 id、ref 以及我之前见过的所有可能的解决方案,但没有任何效果。

<SelectField value={this.state.selectedFramework} onChange={this.handleChange} style={style}>
<MenuItem value={0} primaryText="Please select..." />
{this.props.frameworks.map(this.renderMenuItem)}
</SelectField>

我的更改处理程序如下:

handleChange = (event, index, value) => {
this.setState({selectedFramework: value});
};

但这显然不能被多个选择字段组件使用,因为状态键是硬编码的。我需要引用触发更改的选择,以便我知道要更新哪个状态键。

有什么建议吗?

最佳答案

创建箭头函数并传入选择字段的索引:

{this.state.selectFields.map((v, i) => {
<SelectField value={v} onChange={(e, _, v) => this.handleChange(e, i, v)} style={style}>
<MenuItem value={0} primaryText="Please select..." />
{this.props.frameworks.map(this.renderMenuItem)}
</SelectField>
}

handleChange = (event, index, value) => {
const selectFields = this.state.selectFields.slice();
selectFields[index] = value;
this.setState({selectFields});
};

关于javascript - 引用资料 onChange 处理程序中的 UI SelectField 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39883659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com