【发布时间】:2019-04-08 13:58:37
【问题描述】:
当我第一次加载页面时,在某些页面上它会在 ngOnDestroy 中显示取消订阅错误,因为我正在取消订阅其中的订阅。
我不确定为什么在组件的初始化时调用 ngOnDestroy。
这是我第一次加载页面时看到的错误。
我认为这是 angular2-multiselect-dropdown 的一些问题,但在其他一些组件中,它自己的 ngOnDestory 也被调用,并表示未定义订阅取消订阅。
这是订阅的创建。
其实我认为定义 observable 没有其他问题。
那么这是角度组件生命周期的问题还是可能是 angular2-multiselect-dropdown 的问题?
我之前没有看到这个错误,也不知道我做错了什么。 任何人都可以有类似的问题或帮助我吗? 提前致谢。
【问题讨论】:
-
能否请您显示创建代码“this.changeName$”
-
你能创建一个工作示例吗?
-
@purplefeel 尝试在stackblitz.com 上重新创建问题。大多数情况下,尝试重现该问题也会向您展示您做错了什么。无论如何,没有您的代码,我们无法告诉您出了什么问题,所以请至少发布您的组件代码。
-
我认为关键部分将是组件的 parent 的模板,该组件意外地被 ngOnDestroyed。有问题的孩子是否包含在一些 *ngIf 中,也许?
-
在 init 函数之前的生命周期不太可能调用 destroy 函数。您可以在
ngOnDestroy中放置一个断点并查看堆栈跟踪以了解实际触发此代码的原因吗?