微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

在我的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 举报,一经查实,本站将立刻删除。