Vai alla pagina principale da una scheda

Vorrei sapere come tornare alla rootPage definito nel appComponent quando l’uso di schede. Il setRoot metodo non funziona come mi aspettavo. Quando viene utilizzato in una Scheda di navigazione stack non viene cancellato. Nella ‘home page’, il pulsante indietro è invece visibile della navigazione toggle e il titolo della scheda è indicato.

Per impostazione predefinita, le pagine vengono memorizzate nella cache e sinistra nel DOM se sono navigato
allontanarsi, ma ancora in stack di navigazione (la pagina di uscita su un
premere il tasto() per esempio). Sono distrutta quando viene rimosso dal
stack di navigazione (su pop() o setRoot()).

La dichiarazione di cui sopra mi dà l’aspettativa che quando uso setRoot pagine sono cancellati dalla cache. Questo sembra essere vero quando viene utilizzato in una pagina normale, ma non in una scheda.

Nella classe della pagina della scheda, c’è una funzione che consente di impostare la pagina principale di casa quando il pulsante viene cliccato.

goToHome() {
 this.navCtrl.setRoot(HomePage);
}

Come posso fare in modo che quando ci sono tornato per la home page non c’è nessun pulsante indietro e il titolo della casa che è disponibile nel modello HTML del componente.

  • Potresti provare da ottenere il rootNav? sarebbe come constructor(private app: App,...) {...} e poi this.app.getRootNav().setRoot(YourPage); Se funziona vorrei aggiungere una risposta che spiega tutto ciò con più dettagli
  • Grazie funziona. Gradirei una spiegazione.
  • Sono contento di sentire che! Ho aggiunto una risposta con la spiegazione 🙂
InformationsquelleAutor Rik | 2017-03-04



2 Replies
  1. 25

    Come si può vedere nella docs

    Notare che ogni <ion-tab> si lega a un [root] proprietà, proprio come
    nella sezione di Navigazione sopra. Che è perché ogni
    <ion-tab> è in realtà solo un controller di navigazione. Questo significa che ogni
    la scheda ha una sua storia stack
    , e NavController istanze iniettato
    in bambini @Components di ogni scheda sarà unico per ogni scheda

    Così quando l’impostazione di una pagina come root, si sta usando lo stack di navigazione da quella scheda, e non quello dell’intero app. Ecco perché è necessario per ottenere il menu di navigazione principale stack da fare:

    constructor(private app: App,...) {...}

    E poi

    yourMethod(): void {
        this.app.getRootNav().setRoot(YourPage);
    }
    • Grande Risposta … ho Risolto il Mio Problema Grazie 🙂
    • Grazie sebaferreras! Esso consente di risparmiare il mio tempo.
    • Grazie mi ha aiutato molto !!
    • getRootNav è già obsoleto.
    • non è deprecata come ancora oggi è parte di Ionico docs. C’è un avviso stampato nella console, ma non c’è nessuna informazione su come il nuovo modo deve essere utilizzato (è possibile controllare questo post da Ionici forum) per seguire quello Ionico”, dice il team.
    • Il console dice “(getRootNav) è obsoleto e verrà rimosso nella prossima major release.” Così è, infatti deprecato.
    • Sì, capisco che può portare ad una certa confusione, ma Ionico squadra non ha fornito alcuna informazione su come utilizzare il nuovo metodo (non è nemmeno incluso nella documentazione). E ancora, getRootNav è il modo consigliato per passare da una sovrapposizione componente Ionica Docs. Così come di Ionic 3.9.2 utilizzando getRootNav è il modo corretto per raggiungere questo obiettivo.

  2. 2

    basta provare questo è il lavoro ideale per me

    this.childNavCtrl.setRoot(HomePage);
    • Questo è il corretto e aggiornato soluzione.
    • Questo non ha funzionato per me, ma ha accettato di rispondere ha fatto

Lascia un commento