问题描述
我的compomnet.tx文件具有一些类似于下面的商店订阅方法。
readonly selectedId$: Observable<string | null> = this.store.select(selectedId)
.pipe(shareReplayUntil(this.destroySub));
通常将它们声明为变量。但是我需要从它们中获取当前值,并将其传递到同一.ts文件中的另一种方法。
onScanId() {
// here I need to take subscribe id
this.store.dispatch(scanId({ Id: "1" }));
}
我需要一些专家帮助来解决此问题。我更喜欢我可以删除此只读内容并将其分配给直接变量,并在HTML文件中使用它。
目前,我使用异步管道{ selectedId$ | async }
解决方法
是什么使您无法做
this.selectedId$.pipe(take(1)).subscribe(
Id => this.store.dispatch(scanId({ Id }))
)
您使用take(1)
订阅了您的可观察物,得到了一个单一的值而忘了它。然后只需订阅它,获取ID并分派