Я реализую раскрывающийся список семантической-пользовательской реакции и не могу установить значение этого раскрывающегося события изменения.

Помощь будет оценена

//options object
const options =  [
  {name: "val1" , label: "val1"},
  {name: "val2" , label: "val2"},
  {name: "val3" , label: "val3"}
]

this.state= {location: ''} //state object


//onchange event
dropdownChange = (event: React.SyntheticEvent<HTMLElement>, data:any) => {
    this.setState({[data.name]:data.value})
}

//select component
<Select options={options}
  name="location"  
  value={this.state.location}
  onChange={this.dropdownChange}
/>
0
vjr12 29 Май 2019 в 11:59

2 ответа

Лучший ответ

РЕДАКТИРОВАТЬ: Вам нужно добавить ключ value в массив данных.

Посмотрите, как они генерируют данные в своем примере:

const countryOptions = _.map(faker.definitions.address.country, country => ({
  key: country,
  text: country,
  value: country
}));

СТАРЫЙ ОТВЕТ: Нет такого свойства, как data.name в обработчике onChange (он печатает неопределенное в это коды и коробка)

Я думаю, вы должны заполнить ключ location в состоянии:

dropdownChange = (event: React.SyntheticEvent<HTMLElement>, data:any) => {
    this.setState({location: data.value})
}
2
Gaël S 29 Май 2019 в 09:29

Вы можете попробовать вот так.

//onchange event
dropdownChange = (event: React.SyntheticEvent<HTMLElement>, data:any) => {
    this.setState({[event.target.name]:data.value})
}
0
Raja Jaganathan 29 Май 2019 в 09:19