在过去的几个小时里,我一直在努力尝试使用ReactJS和Semantic UI来实现简单的下拉更改事件。根据我的理解,当选择了不同的选项时,元素的onChange属性应该触发它绑定的事件处理程序。这是我的代码:
var DictionarySelector = React.createClass({
getInitialState: function() {
return {value: ""}
},
handleChange: function(e) {
this.setState({value: e.target.value});
console.log('Dropdown changed');
return;
},
render: function() {
return (
<div className="ui form" style={{marginTop:'55px'}}>
<div className="field">
<select className="ui dropdown" onChange={this.handleChange} value={this.state.value}>
<option value="">Select Dictionary</option>
<option value="1">Dictionary 1</option>
<option value="2">Dictionary 2</option>
</select>
</div>
</div>
);
}
});
一切似乎都没问题,我对此进行了大量研究,但在下拉列表中更改选项时没有任何反应。永远不会调用handleChange函数。有没有人有任何建议? 谢谢!
答案 0 :(得分:2)
这是一个有效的JSFiddle。
HTML
<div id="container">
<!-- This element's contents will be replaced with your component. -->
</div>
的JavaScript
var DictionarySelector = React.createClass({
getInitialState: function() {
return {value: ""}
},
handleChange: function(e) {
this.setState({value: e.target.value});
console.log('Dropdown changed');
return;
},
render: function() {
return (
<div className="ui form" style={{marginTop:'55px'}}>
<div className="field">
<select className="ui dropdown" onChange={this.handleChange} value={this.state.value}>
<option value="">Select Dictionary</option>
<option value="1">Dictionary 1</option>
<option value="2">Dictionary 2</option>
</select>
</div>
</div>
);
}
});
React.render(<DictionarySelector />, document.getElementById('container'));
答案 1 :(得分:1)
Soooo经过大量的实验和不同的尝试后我发现一切都设置得很完美,但我一直在用其他地方的JQuery命令初始化Semantic UI下拉列表,导致一些问题。