2016-01-26 45 views
1

我有一個頁面,其中包含一系列反應生成的下拉列表,這些下拉列表在選擇某個選項時執行特定操作。他們使用自己的'onChange'方法很好地工作,但我想找到一種方法來從外部函數中觸發它們。我試過了:使用React觸發onchange事件 - componentDidMount不起作用

var Dropdown = React.createClass({ 
    getInitialState: function() { 
    return{firstTime: true}; 
    }, 
    onChange: function(event){ 
    if (this.state.firstTime===true) { 
     if (typeof this.props.onChange === 'function') { 
     this.props.onChange(event.target, true); 
    } 
    } 
    else { 
    if (typeof this.props.onChange === 'function') { 
     this.props.onChange(event.target, false); 
    } 
    } 
    this.setState({firstTime: false}); 
    }, 
    componentDidMount: function() { 
    var dropdown = this.refs.dropdown; 
    dropdown.addEventListener('change', this.onChange, false); 
    }, 
    render: function() { 
    return (
     <select className={this.props.className} onChange={this.onChange} ref='dropdown'> 
     {this.props.options.map(function(option){ 
      return (
       <Option value={option.value} key={option.value}>{option.label}</Option> 
      ); 
     })} 
    </select> 
    ); 
    } 
}); 

然後調用document.querySelector(「select.header」)。onchange;只是在我的頁面的控制檯中,沒有任何反應。思考?

回答

0

找到了答案。出於某種原因,我可以用jQuery $(「select.header」)來觸發它。但不是document.querySelector(「select.header」)。onchange();

不知道爲什麼,但至少我找到了解決方案。