Значение ключа доступа - PullRequest
1 голос
/ 04 февраля 2020

Внутри моего рендера у меня есть выбор, и для опций я использую .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 голосов
/ 04 февраля 2020

Один из способов сделать это - установить значение 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 выполните сопряжение и обновите состояние, используя скобочные обозначения :

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

Если ваши значения могут содержать :, выберите другой разделитель.

...