我有一个使用ngOnInit()
方法进行订阅的组件,当我导航到其他路由时,我仍然看到该组件在heap snapshot
中仍然有效。
组件A
sub: Subscription
this.sub = this.detect.isValid().subscribe(data => this.data = data);
ngOnDestroy(){
this.sub.unsubscribe();
}
组件B
当我转到组件B的路线时,组件A仍然存在,但是如果我对订阅进行评论 (this.sub)
...该组件不再可见(被销毁)
我不确定为什么即使取消订阅可观察部件,组件也不会被破坏?
this.sub.unsubscribe();
下面是detectService
private $value: BehaviorSubject<boolean>;
constructor() {
this.$value = new BehaviorSubject(true);
}
public isValid(): Observable<boolean> {
return this.$value;
}