我有一个单页面的应用程序,在其中我需要对本地存储中的每个更改做出反应,它看起来像这样:
MyComponent {
someFuncWhichIsCalledEveryTimeWhenLocalStorageChanges() {
console.log('local storage changed!);
}
funcThatChangesLocalStorage() {
localstorage.setItem('key',val);
localstorage.getItem('key')
}
}
我尝试使用localstorage事件:
window.addEventListener('storage', function(event){
...
});
但那并不管用。所以我在考虑使用Observable<>
,只是不知道如何正确地实现它。
发布于 2018-06-09 05:01:46
window.addEventListener('storage', ...)
works
确保您使用的是正确的event properties。
发布于 2019-04-08 11:58:04
当在另一个文档的上下文中修改存储区域(localStorage或sessionStorage)时,将触发存储事件。
发布于 2021-05-20 22:42:48
如果您想在同一文档中监听存储更改事件,可以添加一个存储更改事件发送函数,如下所示。当您使用localStorage.setItem("xx","xx"),并在它之后触发此函数时,会检测到事件~
export function emitStorageChangedEvent() {
const iframeEl = document.createElement("iframe");
iframeEl.style.display = "none";
document.body.appendChild(iframeEl);
iframeEl.contentWindow?.localStorage.setItem("t", Date.now().toString());
iframeEl.remove();
}
https://stackoverflow.com/questions/50767241
复制相似问题