我的代码有以下错误:
无法读取未定义的属性"setRoot"
删除setTimeout()
后,代码工作正常。我不明白为什么会发生这种情况,尽管nav
定义正确。
export class LoginStudentPage {
constructor(public nav: NavController, public loadingCtrl: LoadingController) {
this.loading = this.loadingCtrl.create();
}
loading: any;
goToDiary(child){
this.storage.set('regNo', child);
this.loading.present();
setTimeout(function(){
this.nav.setRoot(TabsNavigationPage);
this.loading.dismiss();
}, 1500);
}
}
在你的函数中,这不再指你的类,而是指对象窗口。因此,解决此问题的解决方案之一是使用箭头函数。
goToDiary(child){
this.storage.set('regNo', child);
this.loading.present();
setTimeout(_=> {
this.nav.setRoot(TabsNavigationPage);
this.loading.dismiss();
}, 1500);
}