小编fre*_*ees的帖子

@ ngrx/store订阅商店的一部分,避免检测到其他部分的更改

背景

我商店中的一个减速器处理应用程序中选择的内容.这个商店的界面(我们称之为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更改时执行.

我知道我可以拆分selectedProjectselectedPart进入不同的商店来解决这个问题.但是,我很快就能找到许多商店.也许这就是它的意图?

还有另外一种方法吗?我可以使用此界面保留商店,并且订阅仅检测selectedProject商店部分的更改吗?

rxjs ngrx angular

5
推荐指数
1
解决办法
862
查看次数

标签 统计

angular ×1

ngrx ×1

rxjs ×1