如何解决重新加载时如何在野生动物园中获得警报弹出窗口
在我的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 举报,一经查实,本站将立刻删除。