编辑一些错误键入的内容
我做了什么
// in component
export class WhatIdidComponent implements OnInit {
storeData$
combine$;
constructor(
private store: Store<AppState>
private route: ActivatedRoute,
) {
this.storeData$ = this.store.pipe(select((state: AppState) => state['p']['reviews']), share());
this.combine$ = combineLatest(
//I inserted async storeData$ variable in combineLatest
this.storeData$,
this.route.params.pipe(/*any operator*/)
)
}
}
// d
//in template.html
<ng-container *ngIf="(storeData$ | async) as data; else loading">
// not working properly when this.storeData$ is in combineLatest
{{data.blah}}
</ng-container>
当我在this.storeData
中插入combineLatest
时,带有异步管道的storeData $无法正常工作
我认为this.storeData $与combineLatest
无关。因为this.storeData$
是this.storeData$
。
,但它似乎与combineLatest
有关。为什么?以及如何解决这个问题?
我想要的是
感谢您阅读
答案 0 :(得分:0)
您正在使用share
创建一个多播主题,一旦您订阅了combineLatest
可观察的内容,该订阅源便订阅了源(this.store)。这导致所谓的“后期订户”错过了原始可观察者的通知。在这种情况下,后期订阅者是除第一个订阅者之外的所有其他订阅者,因此也是您的异步管道。
您的选择是放下share
管道以保持可观察到的寒冷,或使用例如shareReplay(1)
而是创建缓存行为。