我仍然试图围绕rxjs和observables以及BehaviorSubject包裹头部。我想要做的是将BehaviorSubject和LocalStorage结合起来,以便在特定LocalStorage变量发生变化时通知所有组件。行为主题和本地存储
例如,请考虑以下情形。
有两个组件Component1和Component2。
这两个组件都在LocalStorage中寻找一个称为Component1和Component2的变量,它包含一种颜色并显示该颜色的正方形。
的Component1需要订阅中的localStorage和COMPONENT2 “Component1Color” 键需要订阅 “Component2Color” 在localStorage的。
执行此操作的一种方法是拥有一个BehaviorSubject,它可以维护LocalStorage的状态,并随时对任何变量进行更改,并将此消息广播给订阅了BehaviorSubject的所有组件。
这种方法的问题是,当Component2Color更新时,component1也会收到通知,并且不会执行任何操作。
最好不过的是,Component1只有在Component1Color更新时才会收到通知,而Component2只有在更新Component2Color时才会收到通知。有没有一种方法可以使用单个BehaviorSubject来完成?
你使用'distinctUntilChanged()'吗?你可以发布你的代码,所以我们可以看到你在做什么? – Sasxa
我只是玩rxjs,还没有工作代码呢。我试图弄清楚我应该如何创建一个LocalStorage的包装来处理上述情况。我只是看着distinctUntilChanged,它看起来正是我想要的:)我可以为每个组件传入一个比较器函数,并且只有在diff函数成功时才会触发订阅者。 –