2017-04-18 137 views
0

我正在使用localForage將本地數據存儲在我的應用程序中。所以我檢查當屏幕被加載時if value = true當它是頁必須被重定向到我的TabsPage。Ionic 2 - ionViewDidLoad函數不能讀取navCtrl

這裏的構造函數:

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

回答

1

的問題是,「這個」內回調不是父組件的一個實例。該功能改變它。 可以使用ES6箭頭的功能,將保持這種從父

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

的問題是不是ionViewDidLoad,如果調用this.navCtrl的localForage.getItem它會在外面工作。

你可以閱讀更多關於箭頭功能(和'這個'問題)here

+0

ahhh ofcourse!謝謝 – Sreinieren