Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使使用useEffect挂钩';也未在React中删除事件侦听器;s返回回调_Javascript_Reactjs_React Hooks_Dom Events - Fatal编程技术网

Javascript 即使使用useEffect挂钩';也未在React中删除事件侦听器;s返回回调

Javascript 即使使用useEffect挂钩';也未在React中删除事件侦听器;s返回回调,javascript,reactjs,react-hooks,dom-events,Javascript,Reactjs,React Hooks,Dom Events,我有一个组件,它在初始化期间注册一个密钥事件。 此事件触发API调用以获取随机数据 useEffect(() => { const keyUpEvent = (event) => { if (event.code === "Enter") { event.preventDefault(); fetchRandomData(); } }; document.addEventListene

我有一个组件,它在初始化期间注册一个密钥事件。 此事件触发API调用以获取随机数据

useEffect(() => {
    const keyUpEvent = (event) => {
      if (event.code === "Enter") {
        event.preventDefault();
        fetchRandomData();
      }
    };
    document.addEventListener("keyup", keyUpEvent);
    fetchRandomData();
    return () => {
      setChord({});
      document.removeEventListener("Keyup", keyUpEvent);
    };
  }, []);
但即使使用上面的代码,当我在页面之间导航并通过按键触发事件(Enter键)时,事件也不会被删除

根据下图,当我在多个页面导航后按一次键时,就会发生这种情况。(内存泄漏)

问题:

为什么react不删除已注册的事件?删除事件侦听器的正确方法是什么


您的资本化不正确。您只需将
removeEventListener
中的
Keyup
更改为
Keyup

我真的很抱歉。找不到差异,并且我的控制台中没有错误。顺便说一句,它起作用了。我的错。谢谢你,反正。。。