在reactJS中删除事件监听器

时间:2018-04-18 10:37:15

标签: javascript reactjs typescript

我想删除已经在事件监听器中的事件监听器。我的代码是

  public componentDidMount() {
this.drags();
}
private drags(){
 const e = ReactDOM.findDOMNode(this.container);
    if (e) {
      e.addEventListener("mousedown", (event: any) => {
      ....
       parent = ReactDOM.findDOMNode(this).parentNode;
       if (parent) {
         parent.addEventListener("mousemove", (event1: any) => {
         ....
         const eDrag = parent.getElementsByClassName("draggable");
          eRes[0].addEventListener("mouseup", (event3: any) => {
          **// HERE I WANT TO REMOVE LISTENER OF PARENT OF MOUSE MOVE**
          }
        }
       }

    }
  }

}

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

不要使用匿名函数作为事件处理程序,而是使用命名函数。

所以,如果你这样添加监听器:

function doSomething() {
  // something 
}

window.addEventListener('mousedown', this.doSomething);

您可以将其删除,如:

window.removeEventListener('mousedown', this.doSomething);