Reactjs 反应:addEventListener不是函数错误
我在组件中的渲染方法中有这个divReactjs 反应:addEventListener不是函数错误,reactjs,Reactjs,我在组件中的渲染方法中有这个div <div ref={node => this.domNode = node} style={this.getStyle()}>{ this.props.children }</div> 有一个错误 this.domNode.addEventListener is not a function ref回调的arguemnt(节点)可以是null。在绑定侦听器之前,您需要检查这一点 请注意,当被引用的组件被卸载时,并且每当ref发
<div ref={node => this.domNode = node} style={this.getStyle()}>{ this.props.children }</div>
有一个错误
this.domNode.addEventListener is not a function
ref回调的arguemnt(节点
)可以是null
。在绑定侦听器之前,您需要检查这一点
请注意,当被引用的组件被卸载时,并且每当ref发生更改时,旧ref将以null作为参数调用
在中,必须在其周围放置一个ReactDOM.findDOMNode
componentDidMount = () => {
ReactDOM.findDOMNode(this.domNode).addEventListener('mousedown', this.onDrag);
}
我正在使用React的版本
16.6.3
,我也遇到了您的问题,并使用此方法解决了问题
componentDidMount() {
let domNode = ReactDOM.findDOMNode(this.domNode);
if(domNode) {
domNode.addEventListener('mousedown', this.props. onDrag);
}
}
您在哪个生命周期函数中调用
addEventListener
?如果(this.domNode!=null){this.domNode.addEventListener('mousedown',this.onDrag);},我就这样做了我仍然有相同的错误,我在ComponentDidMount中调用它,我认为是因为this.domNode返回一个react元素,它没有addeventlistener作为函数,但是我不确定如果你在div上有ref,那么这个节点应该是一个实际的dom节点
componentDidMount() {
let domNode = ReactDOM.findDOMNode(this.domNode);
if(domNode) {
domNode.addEventListener('mousedown', this.props. onDrag);
}
}