我在哪里分享我在ngrx中的可观察量?

时间:2017-07-28 14:40:00

标签: angular ngrx

老实说,我甚至不确定这是一个问题,但我很好奇在使用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。

0 个答案:

没有答案