gpt4 book ai didi

angular - 如何在组件销毁时销毁响应式(Reactive) FormControl?

转载 作者:太空狗 更新时间:2023-10-29 18:25:09 24 4
gpt4 key购买 nike

我有一个带有 FormControl 的组件并订阅它的值变化:

@Component(...)
export class FooComponent implements OnInit, OnDestroy {
fooFormControl: FormControl;

...

ngOnInit() {
this.fooFormControl.valueChanges.subscribe(
() => {...},
() => {},
() => {
// never happens
},
);
}

ngOnDestroy() {
//happens
}
}

但是当组件被销毁时,FormControl 元素不会被销毁并且 onComplete 回调永远不会发生。

在组件销毁时销毁 FormControl 元素的正确方法是什么?

最佳答案

FormControl observables 不应该完成,尽管如果有一些逻辑属于完成回调,则可以手动完成。

由于 valueChanges 是事件发射器并且继承自 RxJS Subject,因此它可以取消订阅或完成:

ngOnDestroy() {
this.fooFormControl.valueChanges.complete();
// and/or
this.fooFormControl.valueChanges.unsubscribe();
}

EventEmitter 将来可能不会成为主题。这可能会导致重大更改,但目前它仅依赖于 RxJS。

关于angular - 如何在组件销毁时销毁响应式(Reactive) FormControl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44603327/

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