背景
我商店中的一个减速器处理应用程序中选择的内容.这个商店的界面(我们称之为app)可能如下所示:
interface IApp {
selectedProject: IProject;
selectedPart: IPart;
}
Run Code Online (Sandbox Code Playgroud)
所以我希望订阅仅在选择了不同的"项目"时执行操作.我写了这样的东西:
this.store.select('app')
.map((store: IApp) => store.selectedProject)
.subscribe((project: IProject) => {
// Stuff happens here
});
Run Code Online (Sandbox Code Playgroud)
selectedProject更改时,此功能可以完成.但是,它也会在selectedPart更改时完成.显然,app无论地图如何,它都会监听整个商店.那讲得通.
题
我不希望这种情况发生.我只希望我的函数在selectedProject更改时执行.
我知道我可以拆分selectedProject并selectedPart进入不同的商店来解决这个问题.但是,我很快就能找到许多商店.也许这就是它的意图?
还有另外一种方法吗?我可以使用此界面保留商店,并且订阅仅检测selectedProject商店部分的更改吗?