老实说,我甚至不确定这是一个问题,但我很好奇在使用ngrx时分享我的观察点。 假设您的商店中有这三个变量来控制某些内容是打开还是展开:
export interface State {
isSidebarActive: boolean;
isPlaylistExpanded: boolean;
isFolderListExpanded: boolean;
}
如果使用单个选择器返回所有三个变量,最终可能会在模板中多次使用相同的变量。这不是实际的代码,所以请耐心等待:
<div [hidden]="!(uiState$ | async)?.isSidebarActive">
<ul [@expand]="(uiState$ | async)?.isPlaylistExpanded">
<li></li>
</ul>
<ul [@expand]="(uiState$ | async)?.isFolderListExpanded">
<li></li>
</ul>
</div>
据我所知,这将为uiState $创建三个唯一订阅,您可以使用.share()运算符共享对这三个项目的一个订阅。如果有必要,你会在哪里分享你的Observable?这里吗?
constructor(private store: Store<fromRoot.State>) {
this.uiState$ = this.store.select(fromRoot.getUiState).share();
}
看this answer,我甚至不确定是否有必要。
TIA。