选项下拉列表中的值在选择时不会更改。默认情况下,它始终发送第一个选项
<Form.Control required
as="select"
name="servicetype"
multiple={false}
value={this.state.servicetype}
onChange={this.serviceTypeChange}
className={"bg-dark-text-white"}
>
{this.state.servicetype.map((servicetype, index) => (
<option key={index} value={servicetype}>{servicetype.type}</option>
))}
</Form.Control>
我的更改方法
serviceTypeChange = event => {
this.setState({
//[event.target.name]: [event.target.value]
servicetype: this.state.servicetype,
});
}
注意 - 我正在尝试在选择
在serviceTypeChange
中,您正在使用相同的值更新状态,而不是从事件接收的新值(您已注释掉(。试试这个:
serviceTypeChange = event => {
this.setState({
...this.state,
servicetype: event.target.value,
});
}
因为您使用相同的状态变量来保存选项和选定的选项。对所选选项使用另一个变量。
state = {
serviceTypeOptions: [], // for available options
selectedServiceType: null, // for selected option
}
更改处理程序中的更新
serviceTypeChange = event => {
this.setState({
selectedServiceType: event.target.value
});
}