我在Angular 14应用程序中遇到了一个令人沮丧的问题,我只能假设这个问题是由一些基本的设计缺陷引起的,从而导致复杂性。
想象一下,该应用程序允许用户在问卷中的问题之间导航,每个页面都有一个表格,允许用户根据该表格输入数据。文本类型的输入字段使用以下代码取消弹出:-
this._formGroupChangedSubscription = this.formGroup.valueChanges
.pipe(debounceTime(400), distinctUntilChanged())
.subscribe(() => {
this.onValueChanges();
});
这很好,直到你尝试用魔鬼般的输入,在输入框中输入一些文本,然后很快点击下一个转到下一个问题。数据捕获组件因问题类型而异,因此第一个组件被销毁,订阅随后在获得执行机会之前被销毁。
如果是组件销毁问题,请将订阅移动到服务或立即在Destroy钩子上发出this.formGroup
。
ngOnDestory(): void {
this.onValueChanges();
}