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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法读取未定义的属性'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);
  }

以上是关于无法读取未定义的属性'setRoot' - 角度错误的主要内容,如果未能解决你的问题,请参考以下文章

Nativescript 5.3.1 TypeError:无法读取未定义的属性'getViewById'

TypeError:无法读取未定义的属性'spacing'

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

jqgrid treeGrid无法读取未定义的属性'rowIndex'

组合数组时无法读取未定义的属性'push'

TypeError:无法读取未定义的属性'map'| ReactJS