【发布时间】:2016-04-03 12:20:27
【问题描述】:
我正在使用 React 创建一个受控的选择元素。我的应用程序验证用户选择的新选项值,然后更新元素上的该值。 验证需要一些时间,我观察到的行为如下:
- 用户选择一个选项
- 元素将所选选项更改为索引 0
- 验证期结束后,元素会自行更新为新值
我不明白为什么元素会恢复到第一个索引以及如何防止这种情况(除非立即设置值,这在我的应用程序中是不希望的)
使用此 JSFiddle 查看此行为(选择 Option2)https://jsfiddle.net/qo39g2j4/
var Select = React.createClass({
render: function() {
return (
<select id="my-select" value={this.props.value} onChange={this.props.onChange}>
<option value="Option1">Option1</option>
<option value="Option2">Option2</option>
<option value="Option3">Option3</option>
</select>
);
}
});
var Wrapper = React.createClass({
getInitialState: function () {
return {value: "Option3"};
},
onChange: function (event) {
var value = event.target.value;
setTimeout(function () {
this.setState({value: value});
}.bind(this), 1000); // this simulates the validation period
},
render: function () {
return (
<Select
value={this.state.value}
onChange={this.onChange}/>
);
}
});
ReactDOM.render(
<Wrapper/>,
document.getElementById("container")
);
【问题讨论】:
标签: javascript jquery select reactjs option