背景
我商店中的一个减速器处理在应用程序中选择的东西。该商店的界面(我们称之为app
)可能如下所示:
interface IApp {
selectedProject: IProject;
selectedPart: IPart;
}
因此,我希望订阅仅在选择不同的“项目”时才执行操作。我写了这样的东西:
this.store.select('app')
.map((store: IApp) => store.selectedProject)
.subscribe((project: IProject) => {
// Stuff happens here
});
此功能在selectedProject
更改时起作用。但是,它也会在selectedPart
更改时发挥作用。显然,无论地图如何,它都会倾听整个app
商店的声音。这就说得通了。
问题
我不希望这种情况发生。我只希望我的函数在selectedProject
更改时执行。
我知道我可以分成不同selectedProject
的selectedPart
商店来解决这个问题。但是,我很快就会拥有很多很多商店。也许这就是它的本意?
还有其他方法吗?我可以使用此界面保留商店并拥有仅检测selectedProject
商店部分更改的订阅吗?