Я показываю выпадающее меню выбора, которое отображает список витаминов, но я хочу обновить его до нового витамина, выбранного пользователем.
Я пробовал
renderData(handleChange) {
const {vitamins} = this.state.data;
return vitamins.map((micro, index) => {
return (
<option value="" key={index}>{micro.name}</option>
)
})
}
Это не меняет состояние.
и
renderData() {
this.handleChange();
const {vitamins} = this.state.data;
return vitamins.map((micro, index) => {
return (
<option value="" key={index}>{micro.name}</option>
)
})
}
Это возвращает TypeError: Невозможно прочитать свойство 'target' из undefined.
Вот мой полный код:
constructor(props) {
super(props);
this.state = {
value: '',
data: data.nutrients,
};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange(e) {
this.setState({
value: e.target.value,
});
}
renderData() {
this.handleChange();
const {vitamins} = this.state.data;
return vitamins.map((micro, index) => {
return (
<option value="" key={index}>{micro.name}</option>
)
})
}
return (
<form onSubmit={this.handleSubmit}>
<label className="nutrient-label">
Vitamins
<select value={this.state.value} onChange={this.handleChange}>
{this.renderData()}
</select>
</label>
</form>