我一直在跟踪这个博客,到目前为止,当我单击另一个路由/链接时,我的自定义模式起作用了。
这种实现的唯一问题是,当我刷新时,自定义模式不能工作,而是弹出内置的确认警报。
我这里有我的定制模式。
const CustomConfirm = ({ content, title, isBlocked }) => {
// some codes here (from the blog)
return (
<>
<Prompt when message={handleBlockedRoute} />
{isModalOpen && (
<ConfirmationModal
showConfirmationModal={true}
setShowConfirmationModal={(value) => console.log(value)}
message={title}
handleOk={handleConfirmNavigationClick}
handleCancel={closeModal}
/>
)}
</>
);
};
export default CustomConfirm;
在刷新之前,我们可以弹出一个自定义模式吗?
发布于 2021-06-29 22:47:18
谢天谢地,如果用户刷新页面(在Ctrl+r中刷新)或尝试关闭选项卡(如离开页面),我们就无法拦截和阻止这些事件的发生。
想想广告会有多烦人和可怕(就像它们一样!)如果浏览器允许的话。
不可能在卸载之前劫持onbeforeunload事件;如何覆盖OnBeforeUnload对话框并将其替换为自己的对话框?
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload
发布于 2021-06-29 22:34:41
在componentWillUnmount方法中,使isModalOpen = true。
useEffect(() => {
return () => // set isModalOpen to true;
}, []);
https://stackoverflow.com/questions/68189476
复制