我正在使用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'问题(的更多信息。