Javascript 参考资料UI从onChange处理程序中选择字段组件
我有一个表单,其中有很多SelectField组件(15+)-我试图避免使用多个更改处理程序函数,但我很难找到如何引用触发更改的特定SelectField,以便相应地更新状态 我已经尝试添加一个id、ref,以及我以前见过的所有可能的解决方案,但都没有效果Javascript 参考资料UI从onChange处理程序中选择字段组件,javascript,reactjs,material-ui,Javascript,Reactjs,Material Ui,我有一个表单,其中有很多SelectField组件(15+)-我试图避免使用多个更改处理程序函数,但我很难找到如何引用触发更改的特定SelectField,以便相应地更新状态 我已经尝试添加一个id、ref,以及我以前见过的所有可能的解决方案,但都没有效果 <SelectField value={this.state.selectedFramework} onChange={this.handleChange} style={style}> <MenuItem valu
<SelectField value={this.state.selectedFramework} onChange={this.handleChange} style={style}>
<MenuItem value={0} primaryText="Please select..." />
{this.props.frameworks.map(this.renderMenuItem)}
</SelectField>
但这显然不能被多个selectfield组件使用,因为状态键是硬编码的。我需要引用触发更改的select,以便知道要更新的状态键
有什么建议吗?创建一个箭头函数并传入选择字段的索引:
{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});
};
{this.state.selectFields.map((v,i)=>{
this.handleChange(e,i,v)}style={style}>
{this.props.frameworks.map(this.renderMenuItem)}
}
handleChange=(事件、索引、值)=>{
const selectFields=this.state.selectFields.slice();
选择字段[索引]=值;
this.setState({selectFields});
};
{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});
};