Ionic 2-导航控制器canGoBack()始终未定义(Android)
这是我的职责:Ionic 2-导航控制器canGoBack()始终未定义(Android),android,angular,ionic2,Android,Angular,Ionic2,这是我的职责: checkStack(){ let canGoBack = this.navCtrl.canGoBack() console.log('canGoBack: ',canGoBack); if(canGoBack === true){ console.log('Not RootPage.'); } else { let alert = this.alertCtrl.create({ titl
checkStack(){
let canGoBack = this.navCtrl.canGoBack()
console.log('canGoBack: ',canGoBack);
if(canGoBack === true){
console.log('Not RootPage.');
} else {
let alert = this.alertCtrl.create({
title: 'Exit',
message: 'sure?',
buttons: [
{
text: 'Yes',
role: 'cancel',
handler: () => {
console.log('Cancel clicked');
}
},
{
text: 'No',
handler: () => {
this.platform.exitApp();
}
}
]
});
alert.present();
}
}
我是IonViewDidLoad中的呼叫:
this.platform.registerBackButtonAction(this.checkStack);
但如果我单击BackButton,它将失败,并显示以下消息:
未捕获的TypeError:无法读取未定义的属性“canGoBack”
怎么了?您收到的错误表明您的navCtrl变量未定义。确保在页面的构造函数中实例化它。像这样:
constructor(
public navCtrl:NavController
) {
// constructor logic goes here
}
请注意,包含public对于要分配的变量是必需的,并且在构造函数方法之外不能未定义可用变量。以下是我的解决方案:
我的定义如下:
initializeApp(){
this.platform.ready().then(() => {...})
}
并调用构造函数。工作很好- 我也有同样的问题,我需要解决的就是去掉括号 而不是:
this.navCtrl.canGoBack()
使用:
navCtrl在构造函数中定义
this.navCtrl.canGoBack()
this.navCtrl.canGoBack