点击事件被触发两次

时间:2015-12-03 04:19:57

标签: javascript html reactjs

我将ReactJS用于以下组件:

var TypeaheadBox = React.createClass({

_handleClick(e) {
    if (ReactDOM.findDOMNode(this.refs.typeaheadBox).contains(e.target)) {
        return;
    };
    this.props.onClickOutside();
},

componentWillMount: function() {
    document.addEventListener('click', this._handleClick, false);
},

componentWillUnmount: function() {
    document.removeEventListener('click', this._handleClick, false);
},

render() {
    return (
        <div id='typeahead-box' ref='typeaheadBox'>
            ...
        </div>
    );
}
});

如您所见,我为点击事件添加了一个监听器。在调试时,我意识到当单击事件发生时,_handleClick函数被调用两次,在第二次调用时, this.refs 字段为空,所以会引发错误。

我做错了什么?

0 个答案:

没有答案