javascript - 函数调用时事件监听器不会被删除

标签 javascript reactjs

当路由到不同的页面时,应该删除 eventListener,但事实并非如此。 发生这种情况可能有什么原因吗? 该函数正在被调用。

componentDidMount() {
    window.document.addEventListener("keydown", (e) => {
        Resultaat(e.keyCode)
    })
}

componentWillUnmount() {
    window.document.removeEventListener("keydown", () => { })
}

最佳答案

添加添加/删除事件监听器时,需要提供相同的函数 你可以这样做

componentDidMount() {
 window.document.addEventListener("keydown", this.handleKeyDown)
}

而不是像这样删除它

componentWillUnmount() {
 window.document.removeEventListener("keydown", this.handleKeyDown)
}

您无法将匿名函数传递给窗口事件监听器

希望对你有帮助

关于javascript - 函数调用时事件监听器不会被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58219504/

相关文章:

javascript - 为什么这些 2.9 ChartJS 条形图不一样?

php - 如何将数据从 php 文件导入到 javascript 变量

node.js - `isomorphic-fetch` 和 `isomorphic-unfetch` npm 包有什么区别

javascript - 如何在 eval 语句中插入括号以对 JavaScript 中的操作进行排序?

javascript - 单个元素上具有新/隔离范围的两个属性指令

javascript - Knockout - 如何一起使用 option 和 foreach 绑定(bind)

javascript - weex js 安装失败

javascript - 使用 Immutable JS 映射时如何设置多个对象值

javascript - 全屏 YouTube 视频作为背景,没有分享/稍后观看/图标/开始按钮

javascript - react native : Android is not showing all images (even though they are the same)