无法读取未定义的属性'setRoot' - 角度误差



我的代码有以下错误:

无法读取未定义的属性"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);
  }

最新更新