2017-05-09 3 views
0

Ich bin in einer ionic 2 MyApp-Klasse, und ich möchte einen Bildschirm für 3 Sekunden zeigen, dann wechseln Sie zu einem anderen. Ich bekomme einen this.nav.parent ist Null Fehler. Ich versuche zwei Arten von Timern und keiner funktioniert. Ich verwende Tabs und möchte, dass es übrigens auf die erste Tab-Seite geht.ionic 2 Timer verursacht Absturz in App-Klasse

gotoFirstPage() 
{ 
    //these two lines work fine 
    //this.nav.setRoot(TabsPage); 
    //this.nav.parent.select(1); //this.nav.parent is not null here 

    setTimeout((function() 
    { 
     this.nav.setRoot(TabsPage); 
     this.nav.parent.select(1); //this.nav.parent is null 
    }.bind(this)),3000); 

    let timer = Observable.timer(3000, 86400000); 
    timer.subscribe(t => { 
     this.nav.setRoot(TabsPage); 
     this.nav.parent.select(1); //this.nav.parent is null 
    }); 
} 

Antwort

0

Ich empfehle ein Fett-Pfeil verwenden => statt Bindung dieses:

setTimeout(() => 
{ 
    this.nav.setRoot(TabsPage); 
    this.nav.parent.select(1); //this.nav.parent is null 
},3000); 

Wenn das nicht funktioniert, dann ist Ihr nav Objekt in this null ist, so dass das Problem nicht ist Timer.

0

Ich habe keine Ahnung, warum this.nav.parent null ist, aber ich fand einen besseren Weg Registerkarten wechseln:

this.nav.setRoot(TabsPage, { tabIndex: 1 }); 
Verwandte Themen