重新加载时如何在野生动物园中获得警报弹出窗口

问题描述

在我的react项目中,我为重新加载或关闭标签的警报用户创建了一个自定义钩子。

自定义挂钩

....
const useTabClosewarning = (message = "Are you sure you want to close?") => {
  const [isDirty,setIsDirty] = useState(false);

  useEffect(() => {
    // Detecting browser closing
    window.onbeforeunload = isDirty && (() => message);

    return () => {
      window.onbeforeunload = null;
    };
  },[isDirty]);

  const routerPrompt = <Prompt when={isDirty} message={message} />;

  return [routerPrompt,() => setIsDirty(true),() => setIsDirty(false)];
};
....

组件

....
const [Prompt,setDirty,setPristine] = useTabClosewarning();

useEffect(() => {
    setDirty(true);
  },[]);

return (
    <>
      {Prompt}
    </>
)
....

功能在Safari浏览器以外的所有浏览器中均能完美运行。怎么也可以在野生动物园做这项工作?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)