如何使用反应挂钩设置离开警告?

How to set a leaving warning with react hooks?

我正在做一个需要显示进度的应用,如果你打回去就会丢失

我确实使用了 useEffect 钩子:

 useEffect(() => {
        return () => {
          showWarning();
        }
  }, [])

我可以使用哪个函数来停止此返回操作,以便显示我的警告并确认?

如果您使用 react-router,您可以 Prompt 来处理这种行为。您在这里有更多信息:https://reactrouter.com/core/api/Prompt

“我可以使用哪个函数来停止此后退操作”如果您的意思是要阻止浏览器完成其操作,那么这不是设计应用程序的方式,使用 return 语句的 useEffect 是用于清理工作而不是用于安装另一个组件或显示消息

您可以改为使用 onbeforeunload 事件并清理应用 unmount 上的处理程序,但它会显示一个弹出窗口,其中包含无法更改的默认消息

 useEffect(() => {
   function showWarning() {
     return '';
   }

   window.addEventListener('beforeunload', showWarning);

   return () => {
      window.removeEventListener('beforeunload', showWarning);
   }
 })