在渲染中,我有一个选择,对于选项,我使用.map
,如下所示:
<select value={this.state.eixo} onChange={this.handleChange}>
<option value=""></option>
{this.state.eixos.map((item) => {
return <option key={item.id}>{item.descricao}</option>
})}
</select>
我想从我在handleChange
方法中选择的选项中的密钥,我尝试过类似的操作,但似乎不起作用:
handleChange = (event) => { this.setState({ key: event.target.value }) };
答案 0 :(得分:0)
一种实现方法是将option
的值设置为key:value
对,
<select value={this.state.eixo} onChange={this.handleChange}>
<option value=""></option>
{this.state.eixos.map(item => {
return (
<option key={item.id} value={`${ite.id}:${item.descricao}`}>
{item.descricao}
</option>
);
})}
</select>;
然后将e.target.value
拆分为key
:value
对,并使用bracket notation更新状态:
handleChange = event => {
const [key, value] = event.target.value.split(":");
this.setState({ [key]: value });
};
如果您的值可以包含:
,请选择另一个分隔符。