angular - 您是否必须取消订阅组件中的 QueryList?
问题描述
当使用@ContentChildren
or@ViewChildren
装饰器来监听 DOM 元素的变化时。我必须取消订阅QueryList
吗?
例如:
@Component({...})
export class ParentComponent implements AfterContentInit {
@ContentChildren(ChildComponent)
public children: QueryList<ChildComponent>;
public ngAfterContentInit(): void {
this.children.changes.subscribe(() => ....);
}
}
以上会不会有问题?
更新:
我问的原因是我们不必取消订阅@Output
装饰器。当组件被销毁时,它们会自动取消订阅。
我找不到任何说明这对于QueryList
.
解决方案
您不必取消订阅 QueryList。它为你做。
作为一般规则,当 Observable 在组件销毁后仍然存在时,我会取消订阅。适用于大多数场景。
推荐阅读
- angular - 在我的 windows 操作系统中安装 angular 时遇到问题
- r - 创建具有 1 个连续变量和 2 个因子变量的并排条形图(一个用于堆叠,另一个用于分组条形图)
- c# - 向上和向下循环移动图像
- angular - TypeError:“x”不是函数 Angular 打字稿方法
- vue.js - 从 API 检索数据并将它们传递到 Vuetify 表中
- java - 添加一个“;” 在 Arraylist 中的每条数据之后
- sql - SQL - 从一对多关系中选择最大和最小行
- react-native - 无法在 redux store 中存储数据 - 刷新页面后数据消失
- python - NoneType object has no attribute find_all error using beautiful Soup
- xpath - XPath 3.1 中地图的用途/用途是什么?