在js中观察localstorage的变化

新手上路,请多包涵

我有一个单页应用程序,我需要在其中对本地存储中的每个更改做出反应,它看起来像:

     MyComponent {

    someFuncWhichIsCalledEveryTimeWhenLocalStorageChanges() {
        console.log('local storage changed!');
    }

    funcThatChangesLocalStorage() {
        localstorage.setItem('key',val);
        localstorage.getItem('key')
    }

    }

我尝试使用 localstorage 事件:

 window.addEventListener('storage', function(event){
       ...
});

但这没有用……所以我正在考虑使用 Observable<> ,只是不知道如何正确实施它。

原文由 Tasha Herber 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 320
1 个回答

来自 MDN 文档的 巨大警告 :窗口存储事件

[ window.addEventListener('storage', ...) ] 不会在进行更改的同一页面上工作——这实际上是域中其他页面使用存储同步所做的任何更改的一种方式。

所以这可能就是它对你(对我也是)不起作用的原因——你试图在同一页面的其他部分回应这个听众。

原文由 Yangshun Tay 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题