javascript - Hur kan jag byta flik och gå till roten av en navigeringsstack?
Jag använder Ionic 2 och har ett set med flikar. Varje flik upprätthåller sin egen navigeringsstack.
Användaren kan gå flera sidor djupt in i någon av flikarna och sedan byta flik.
Problemet är att det finns interaktioner i flik 1 som påverkar innehållet i flik 2. Det jag upptäcker är att om användaren utför vissa handlingar i en viss ordning, får jag ett fel:
Körtidsfel
Ohanterat (i löftet): removeView hittades inte
Jag tror att detta beror på att Ionic försöker ta bort en vy som inte längre finns eftersom innehållet har ändrats.
I Flik 1 trycker användaren på en knapp för att ladda Flik 2. Appen sparar det val de gjorde i lokal lagring, som Flik 2 sedan laddar när den är på rot-sidan. Jag väljer Flik 2 med följande kod:
this.navCtrl.parent.select(1);Jag tror att jag kan förhindra detta problem genom att gå till roten av navigeringsstacken när fliken väljs, men hur kan jag göra det?
Jag försökte:
this.navCtrl.parent.select(1);
this.navCtrl.parent.goToRoot();
Men med detta händer ingenting. Fliken ändras inte och det finns inga fel.
Så, min fråga: Hur kan jag byta flik och navigera till roten av navigeringsstacken från en annan flik?
Svar #1
För vissa sidor utanför den vanliga navigeringsstacken i min applikation (Ionic 3 med lazy loading), använder jag följande kod, där jag sätter root (setRoot) innan jag navigerar till den nya sidan (popToRoot):
this.navCtrl
.setRoot('YourPage')
.then(() => {
this.navCtrl.popToRoot();
}, err => console.log(err))
