当使用@ContentChildren
or @ViewChildren
用于监听 DOM 元素更改的装饰器。我是否必须取消订阅QueryList
?
例如:
@Component({...})
export class ParentComponent implements AfterContentInit {
@ContentChildren(ChildComponent)
public children: QueryList<ChildComponent>;
public ngAfterContentInit(): void {
this.children.changes.subscribe(() => ....);
}
}
上面的情况会不会有问题呢?
Updated:
我问的原因是我们不必取消订阅@Output
装饰者。当组件被销毁时,它们会自动取消订阅。
我找不到任何文档表明这与QueryList
.
您不必取消订阅 QueryList。它为你做这件事。
看这里:https://github.com/angular/angular/blob/7d137d7f8872a6fba72668e32f9baf2c5dcfc48b/packages/core/src/linker/query_list.ts#L115 https://github.com/angular/angular/blob/7d137d7f8872a6fba72668e32f9baf2c5dcfc48b/packages/core/src/linker/query_list.ts#L115
作为一般规则,当组件销毁后 Observable 保持活动状态时,我会取消订阅。适用于大多数场景。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)