删除事件监听器

时间:2019-10-04 10:15:06

标签: javascript reactjs

我们目前正在处理电视应用。当您离开主页时,应删除事件侦听器,因为我们需要添加新的控件映射。因此,在准备好文档后,应添加正确的事件侦听器,并在离开此页面时删除事件侦听器。

按左键将使您进入div的第一个孩子(此功能已起作用)。 主要问题是,每当您从一页转到下一页时,上一页控件中的事件侦听器都不会被删除。

componentDidMount() {
    window.document.addEventListener("keydown", function(e) {
      Resultaat(e.keyCode);
    });
}

componentWillUnmount() {
   window.document.removeEventListener("keydown", function() {
      Resultaat();
    });
}

1 个答案:

答案 0 :(得分:2)

您没有删除相同的功能:

因此,我们创建了一个函数keydownHanlder,以便在componentWillUnmount中删除相同的处理程序。

keydownHandler = (e) => {
   // handler code here
}

componentDidMount() {
    window.document.addEventListener('keydown', this.keydownHandler);
}

componentWillUnmount() {
    window.document.removeEventListener('keydown', this.keydownHandler);
}

希望有帮助!