我的Angular类中有一个类似这样的可观察对象:
fullMember: Observable<Member | undefined>
并在构造函数中:
this.fullMember = store.pipe(select(selectActiveMember))
从这个选择中,我正在传递信息:
this.firstName = this.fullMember.pipe(filterUndefined(), map(m => m.firstName))
this.lastName = this.fullMember.pipe(filterUndefined(), map(m => m.lastName))
this.phoneNumber = this.fullMember.pipe(filterUndefined(), map(m => m.detail.homePhoneNumber))
这一切都可行,但是我想使此Observable不确定,以显示另一个activeMember
我尝试过的事情
我尝试在ngOnChanges
ngOnChanges(changes: SimpleChanges): void {
this.fullMember.pipe().subscribe({
next: () => undefined
})
}
但是那什么也没给我。我不确定是否可以做到这一点,因为谷歌搜索并没有给我带来任何好处。可以使可观察的不确定吗?
答案 0 :(得分:0)
如评论中所述,您似乎正在使用ngrx。
在这种情况下,建议您管理一个用于加载状态的专用字段。例如loading
,带有专用选择器。
它将提高可读性和可维护性
在分派动作loadMember
时,在减速器内设置当前的加载状态:
return {
...state,
loading: true
}
然后,执行操作loadMemberSuccess
:
return {
...state,
activeMember: payload,
loading: false
}
在组件中ts:
loading$ = this.store.pipe(select(appSelectors.getLoading));
然后进入模板:
<my-loader *ngIf="loading$ | async">
</my-loader>