【发布时间】:2020-07-22 23:27:41
【问题描述】:
我有一个组件充当大型容器组件的子组件,该组件编排稍大的表单(使用反应式表单)
我有这段代码:
ngOnInit() {
this.subscriptions.push(this.form.get('total').valueChanges.subscribe(data => {
this.cdr.markForCheck();
}));
}
ngOnDestroy(): void {
this.subscriptions.forEach((sub) => {
sub.unsubscribe();
})
}
问题:这是必需的吗?即使组件与表单一起被销毁?
【问题讨论】:
-
在
ngOnDestroy中取消订阅并不总是绝对必要的,但这是一个很好的做法。为什么它并不总是必要的?因为在某些情况下 Observablescomplete自己,例如与http客户。销毁一个组件并不等同于取消订阅它的订阅。这就是为什么取消订阅是一种很好的做法,以避免订阅在应用程序中徘徊。 -
我想你的答案在这里:stackoverflow.com/questions/38008334/…
-
我认为这个答案可能会有所帮助,看看这个:stackoverflow.com/a/57009988/8578281
标签: angular rxjs angular-reactive-forms