我正在尝试使用useEffect()
钩的"清理返回"将key:value
保存到localStorage
。
这是我的代码:
useEffect(() => {
const onbeforeunloadFn = () => {
localStorage.setItem('color', 'red')
}
window.addEventListener('onbeforeunload', onbeforeunloadFn);
return () => {
window.removeEventListener('onbeforeunload', onbeforeunloadFn);
}
}, [])
我什至在onbeforeunloadFn handler
中尝试了prevent
默认行为并返回string
,但也无法正常工作。遵循OnBeforeunload doc
任何人都可以向我解释为什么或如何制作此代码,以便在用户关闭browser tab
时,它可以工作 JUST ?谢谢
就像@alexanderstaroselsky提到的那样,我认为您只是拼写了事件名称。
useEffect(() => {
const onbeforeunloadFn = () => {
localStorage.setItem('color', 'red')
}
window.addEventListener('beforeunload', onbeforeunloadFn);
return () => {
window.removeEventListener('beforeunload', onbeforeunloadFn);
}
}, [])
有趣的是,您提到的文档的英语版本有一个稍有不同的示例,可能会帮助您确定错误:
window.addEventListener("beforeunload", function(event) { ... });
window.onbeforeunload = function(event) { ... };