Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ReactJS下拉菜单(使用语义UI)赢得';一次换一次火?_Javascript_Reactjs_Semantic Ui - Fatal编程技术网

Javascript ReactJS下拉菜单(使用语义UI)赢得';一次换一次火?

Javascript ReactJS下拉菜单(使用语义UI)赢得';一次换一次火?,javascript,reactjs,semantic-ui,Javascript,Reactjs,Semantic Ui,在过去的几个小时里,我一直在努力使用ReactJS和语义用户界面,让一个简单的下拉更改事件正常工作。根据我的理解,元素的onChange属性应该在选择不同的选项时触发它绑定到的事件处理程序。这是我的密码: var DictionarySelector = React.createClass({ getInitialState: function() { return {value: ""} }, handleChange: function(e) {


在过去的几个小时里,我一直在努力使用ReactJS和语义用户界面,让一个简单的下拉更改事件正常工作。根据我的理解,元素的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>
         );
     }
 });
var DictionarySelector=React.createClass({
getInitialState:函数(){
返回{值:“”
},
handleChange:函数(e){
this.setState({value:e.target.value});
console.log('Dropdown changed');
返回;
},
render:function(){
返回(
选择字典
字典1
字典2
);
}
});
一切似乎都很好,我对此做了一系列研究,但当下拉菜单中的选项发生变化时,什么都没有发生。handleChange函数从未被调用。有人有什么建议吗?
谢谢

这是一个有效的方法

HTML


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'));
var DictionarySelector=React.createClass({
getInitialState:函数(){
返回{值:“”
},
handleChange:函数(e){
this.setState({value:e.target.value});
console.log('Dropdown changed');
返回;
},
render:function(){
返回(
选择字典
字典1
字典2
);
}
}); 
React.render(,document.getElementById('container');
这是一个有效的方法

HTML


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'));
var DictionarySelector=React.createClass({
getInitialState:函数(){
返回{值:“”
},
handleChange:函数(e){
this.setState({value:e.target.value});
console.log('Dropdown changed');
返回;
},
render:function(){
返回(
选择字典
字典1
字典2
);
}
}); 
React.render(,document.getElementById('container');

sooo经过大量的实验和不同的尝试,我发现一切都设置得非常完美,但我一直在用JQuery命令初始化语义UI下拉列表,这导致了一些问题

sooo经过大量的实验和不同的尝试,我发现一切都设置得非常完美,但我一直在用JQuery命令初始化语义UI下拉列表,这导致了一些问题

我不认为这是原因,但是你的样式属性缺少大括号:
style=“marginTop:'55px'}>
我不认为这是原因,但是你的样式属性缺少大括号:
style=“marginTop:'55px'}>
我和你一样有类似的问题,你把代码放在哪里了?因为我尝试在componentDidMount内部,直接在application.js内部(我使用rails),但这不起作用。你是如何在@jkatz94中做到这一点的?我想我最终做的是使用一个标准的下拉列表(不是用语义UI初始化),然后触发标准的onchange事件。Semantic和react不能很好地相互配合,除非您使用react Semantic uiI之类的库。我和您有类似的问题,您将代码初始化语义下拉列表放在哪里?因为我尝试在componentDidMount内部,直接在application.js内部(我使用rails),但这不起作用。你是如何在@jkatz94中做到这一点的?我想我最终做的是使用一个标准的下拉列表(不是用语义UI初始化),然后触发标准的onchange事件。语义和react不能很好地相互配合,除非您使用诸如react语义ui之类的库