我正在使用reactJs + semantic-ui-react建立一个简单的表单。它工作正常,但奇怪的是,没有采取选择的第一个更新事件:
我在下拉列表中更改了值 - >没有任何反应,它保留了前一个 - >我再次这样做 - >它有效
我认为它与初始状态有关:如果我不放任何它似乎工作但我不喜欢空的组合框。这是我的代码片段:
class MyForm extends Component {
constructor(props) {
super(props);
this.state = {
selected: 'A'
};
}
handleComboChange = evt => {
console.log('combo change');
this.setState({ selected: evt.target.value });
}
render() {
const myOpts = [
{ text: 'A state', value: 'A' },
{ text: 'B state', value: 'B' },
];
return (
<Form>
<Form.Group widths="equal">
<Form.Select onChange={this.handleComboChange} fluid label="State" options={myOpts} value={this.state.selected} />
</Form.Group>
</Form>);
} }
编辑:有趣的似乎是一个与语义ui相关的问题,以下工作正常:
<select value={this.state.selected} onChange={this.handleComboChange}>
<option value='A'>A state</option>
<option value='B'>B state</option>
</select>
Solved ... semantic-react有自己定义事件的方法,我不得不改变我的处理函数:
handleComboChange = (evt,data) => {
console.log('combo change');
this.setState({ selected: data.value });
}