【问题标题】:Should I Unsubscribe reactive form's valueChanges?我应该取消订阅反应表单的 valueChanges 吗?
【发布时间】:2018-01-04 22:39:00
【问题描述】:

是否需要取消订阅响应式表单控件的 valueChanges 订阅,否则 Angular 会为我们取消订阅?

路由器中:
根据官方文档,Angular 应该为你退订,但显然,有一个bug

所以我在这里关心的是 FormControl 的 valueChanges。

【问题讨论】:

  • 作为一种良好的编码习惯,是的
  • 但是如果你破坏了控制就没有更多的可观察的了,不是吗?您对此有何解决方案?

标签: angular angular-reactive-forms


【解决方案1】:

是的,这是必要的,为了避免丢失对订阅的引用而导致内存泄漏,您应该始终在 ngOnDestroy 上取消订阅。或者,您可以在不再需要订阅时使用其他技术来关闭订阅,例如 takeUntiltakeWhile

有关退订的更多详细信息,请参阅此帖子

http://brianflove.com/2016/12/11/anguar-2-unsubscribe-observables/

【讨论】:

  • 当两个控件位于同一个表单中并且将与包含的组件一起被销毁时,是否也需要这样做?
  • 您可以使用 SubSink 来管理退订。 npmjs.com/package/subsink
  • @WilliamCuervo SubSink 看起来不错,但为什么 Angular 不自己提供呢?
猜你喜欢
  • 2021-07-22
  • 2018-04-26
  • 2018-12-05
  • 2019-10-25
  • 2023-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多