离子2 -ionviewDidload函数无法读取NAVCTRL



我正在使用localforage将本地数据存储在我的应用中。因此,我检查屏幕何时加载 if value = true时必须将页面重定向到我的TabSpage。

这是构造函数:

 constructor(public navCtrl: NavController, public loading: LoadingController){}

这是我的IonViewLoaded函数:

ionViewDidLoad() {
  localForage.getItem('didLogin', function(err, value) {
     // Run this code once the value has been
     // loaded from the offline store.
     console.log(value);
     if(value){
        this.navCtrl.push(TabsPage);
     }
  });
}

在其他功能中,它正在使用相同的代码行。

这是我遇到的错误:

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'navCtrl' of undefined TypeError: Cannot read property 'navCtrl' of undefined

问题是您的回调内的'this'不是父组件的实例。该功能更改它。您可以使用ES6箭头函数,该功能可以将其与父

保持
localForage.getItem('didLogin', (err, value) => {
 if(value){
    this.navCtrl.push(TabsPage);
 }
});

问题不是ionviewDidload,如果您在localforage.getItem之外调用this.navctrl,它将起作用。

您可以在此处阅读有关箭头功能(以及'this'问题(的更多信息。

相关内容

  • 没有找到相关文章

最新更新