gpt4 book ai didi

angular - 如何取消订阅 ngrx/store?

转载 作者:太空狗 更新时间:2023-10-29 17:03:43 26 4
gpt4 key购买 nike

我有一个组件从订阅商店获取数据。

this.store.select('somedata').subscribe((state: any) => {
this.somedata = state.data;
});

我想在组件不再存在时取消订阅,在我订阅一些可观察对象的其他地方,像这样:

this.service.data.subscribe(
(result: any) => {//data}
);

我在 ngOnOnDestroy 上退订了它,像这样:

ngOnDestroy(){
this.service.data.unsubscribe();
}

但如果商店我不能,它会给我错误:

Property 'unsubscribe' does not exist on type 'Store<State>'

最佳答案

有一种比得票最高的答案更好的方法,您无需管理一堆订阅,只需管理一个。然后,您可以拥有任意数量的订阅,而无需创建一堆不必要的变量。

  public ngDestroyed$ = new Subject();

public ngOnDestroy() {
this.ngDestroyed$.next();
}

public ngOnInit() {
this.myWhateverObs$
.pipe(takeUntil(this.ngDestroyed$))
.subscribe((val)=> { this.whatever()});
this.myWhateverNPlusOne$
.pipe(takeUntil(this.ngDestroyed$))
.subscribe((val)=> { this.whatever()})
}

关于angular - 如何取消订阅 ngrx/store?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47496383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com