访问密钥值

时间:2020-02-04 19:05:42

标签: javascript reactjs dictionary key state

在渲染中,我有一个选择,对于选项,我使用.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 }) };

1 个答案:

答案 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拆分为keyvalue对,并使用bracket notation更新状态:

handleChange = event => {
  const [key, value] = event.target.value.split(":");
  this.setState({ [key]: value });
};

如果您的值可以包含:,请选择另一个分隔符。