刷新页面时 React hook 清理

Adr*_*scu 5 reactjs react-hooks

我有一个使用钩子在 React 中构建的应用程序,当关闭时需要通知服务器。我尝试使用以下方法来做到这一点:

function onUnload() {

        if (roomID !== "")
            endGame(roomID, dispatch);
    }

    useEffect(() => {
        return onUnload;
    },[])
Run Code Online (Sandbox Code Playgroud)

这里,endGame是一个向后端执行 HTTP 请求的函数。但是,当刷新页面以模拟用户关闭应用程序时,请求永远不会到达服务器,这意味着清理功能不会被执行。关于哪里出了问题有什么想法吗?

提前致谢

Eas*_*war 6

刷新页面与组件卸载不同。当刷新页面时,React 状态会重置,因为 React 仅适用于当前客户端会话,刷新相当于重置它。您所期待的可能就是该onunload活动。尝试这个:

window.onbeforeunload = function(e) {
  return onUnload();
};
Run Code Online (Sandbox Code Playgroud)