Angular 订阅和取消订阅在离子2中不起作用
我注意到,每次我在堆栈中推一个页面时,它都会调用Angular 订阅和取消订阅在离子2中不起作用,angular,typescript,ionic2,Angular,Typescript,Ionic2,我注意到,每次我在堆栈中推一个页面时,它都会调用ionViewloaded,我添加subscribe()我的问题是,当我弹出页面时,我无法取消订阅。这是我的密码。它不起作用 ionViewDidLoad() { this.user = this.navParams.data; this.events.subscribe('close:userPopOver', this.onRemovePopOver.bind(this)); } ionViewWillLeave() {
ionViewloaded
,我添加subscribe()
我的问题是,当我弹出页面时,我无法取消订阅。这是我的密码。它不起作用
ionViewDidLoad() {
this.user = this.navParams.data;
this.events.subscribe('close:userPopOver', this.onRemovePopOver.bind(this));
}
ionViewWillLeave() {
alert('FIRES!!');
this.events.unsubscribe('close:userPopOver', this.onRemovePopOver.bind(this));
}
这两个答案都无法实现,因为typescript并没有识别传递给订阅实例的void值以使其工作
this.events.unsubscribe('close:userPopOver',null)
订阅是否来自rxjs/Rx?我得到一个警告类型void,不能从“rxjs/Subscription”分配给类型“Subscription”
import{Subscription}
this.events.subscribe()返回void无法分配给订阅您订阅的是void
?不,这是错误的。它应该返回Observable
,否则您无法订阅它。虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的附加上下文将提高答案的长期价值。
private sub : Subscription;
ionViewDidLoad() {
this.user = this.navParams.data;
this.sub = this.events.subscribe('close:userPopOver', this.onRemovePopOver.bind(this) );
}
ionViewWillLeave(){
alert('FIRES!!');
this.sub.unsubscribe();
}