Jetzt haben wir uns die grundlegende Navigation mit Navigieren angesehen und Navigieren ist Ihr wichtigstes
Werkzeug. Wenn Sie sich jedoch innerhalb eines Bildschirms einer Komponente befinden, die mithilfe eines Stapelnavigators geladen wurde,
haben Sie Alternativen zum Navigieren.
Sie können auch Push verwenden, anstatt zu navigieren. Dabei wird jedoch kein Javascript-Objekt verwendet, sondern nur der Routenname.
In diesem Fall werden
die Mahlzeiten der Kategorie als erstes Argument verwendet. Damit erhalten Sie das gleiche Verhalten wie zuvor.
Die Frage ist natürlich, warum Sie dies dann verwenden würden.
Nummer eins, es ist etwas kürzer als das Navigieren, weil Sie kein Objekt
übergeben, aber das ist
nicht der Hauptgrund. Stattdessen kann die Verwendung von Push hier nützlich sein, wenn Sie beispielsweise eine Seite aufrufen möchten, auf der Sie sich bereits befinden.
Lassen Sie mich Ihnen jetzt zeigen, was ich meine.
Wenn ich dies zurücksetze und hier zu Kategorien navigiere, gehe ich zum
Kategoriebildschirm, in dem ich mich bereits befinde. Wenn ich das mit navigieren mache, werden Sie sehen,
dass nichts passiert, wenn ich darauf tippe.
Wenn ich stattdessen Push verwende und daher nur Kategorien als erstes Argument übergebe, weil Push so funktioniert, werden Sie sehen, dass
dies jetzt funktioniert und ich immer wieder zum selben Bildschirm wechseln kann und es immer wieder
zum selben Stapel verschoben wird und immer wieder.
Jetzt fragen Sie sich natürlich vielleicht, warum ich den Bildschirm, auf dem ich mich bereits befinde, wieder darauf schieben möchte.
In vielen Apps benötigen Sie dies möglicherweise nicht, aber nehmen wir an, Sie erstellen eine App wie Dropbox, in der Sie Ordner
haben, zwischen denen Ihre
Benutzer navigieren können. Wenn Sie sich in
einem Ordner befinden, möchten Sie zu einem anderen Ordner wechseln.
Jetzt ist jeder Ordner technisch gesehen der gleiche Ordnerbildschirm, nur mit unterschiedlichen Inhalten. In einem solchen Fall möchten Sie möglicherweise von Ordner A
nach B wechseln, in dem dieselbe Komponente, am Ende derselbe Bildschirm, aber mit unterschiedlichem Inhalt verwendet wird.
In einem solchen Fall können Sie Push verwenden, um den neuen Bildschirm weiterhin zu verschieben Ist derselbe Bildschirm
auf den Stapel und laden Sie den gleichen Bildschirm mit unterschiedlichem Inhalt. Dies wäre ein Szenario, in dem
Sie dies benötigen könnten. In dieser App benötigen
wir es nicht, sodass kein Push erforderlich ist. Sie haben dies jedoch in Szenarien, in
denen die Navigation
Sie nicht zu diesem Bildschirm führt. Push
wird immer angezeigt, wenn Sie sich in einem Stack-Navigator befinden. Hier werde ich dies jedoch auf Navigation zurücksetzen, wobei ein Objekt mit einem Routennamen
verwendet wird, der dann auf Kategorien zeigt, da wir hier absolut keinen Push benötigen, dh Kategorie-Mahlzeiten. Dies ist also für diese App ausreichend. Jetzt haben
Sie auch andere
explizite Navigationsoptionen. Nehmen wir an, Sie
möchten in der Kategorie "Mahlzeit" zurückkehren können.
Natürlich können wir mit Hilfe dieser Zurück-Schaltfläche zurückgehen, aber es ist auch nicht so untypisch, dass Sie
in einigen Apps andere Dinge tun können, die Ihre Benutzer dort tun können, wo Sie sie damals hinnehmen möchten,
zum Beispiel Sie befinden sich auf einer Seite, auf der Sie eine Konfiguration einrichten
können. Wenn Sie auf die Schaltfläche Speichern klicken, möchten Sie diese Konfiguration speichern und den Bildschirm verlassen.
In diesem Szenario möchten Sie möglicherweise eine Rücknavigation manuell auslösen können und nicht darauf warten, dass der Benutzer
die Zurück-Taste drückt, da dies den Benutzer möglicherweise dazu zwingt, zuerst eine Speichern-Taste zu drücken und dann
manuell zurückzukehren, was nicht der Fall ist die beste Benutzererfahrung.
Also hier werde ich dies irgendwie simulieren, indem ich hier auf unserem Bildschirm nur eine Zurück-Schaltfläche habe. In unserem jsx-Code
und wenn wir diese drücken, möchte ich in der Lage sein, zurück zu gehen, ich möchte
manuell eine Zurück-Navigation auslösen.
Sie können dies mit Hilfe der Navigations-Requisite tun, da Sie dort eine Zurück-Methode haben, die Sie aufrufen können,
und die genau das tut, wonach es sich anhört.
Wenn wir dies speichern und ich zu den Mahlzeiten gehe, wenn ich auf Zurück klicke, spielen wir die Rückennavigation.
Technisch gesehen springt dies von dem Bildschirm, auf dem wir uns befinden, und
kehrt daher zum vorherigen Bildschirm im Stapel zurück. Wenn Sie sich in einem Stack-Navigator befinden, haben Sie alternativ auch Pop,
das das tut, was der Name andeutet. Es wird vom
aktuellen Bildschirm auf dem Stack angezeigt. Da Sie auf Ihrem Gerät immer den obersten Bildschirm sehen, ist dies auch der Fall spielt die
Rückennavigation ab, daher ist dies eine Alternative zum Zurückgehen. Der Unterschied besteht darin, dass Pop nur verwendet werden kann, wenn Sie
sich in
einem Stack-Navigator befinden. Das Zurückgehen ist auch in anderen Navigatoren verfügbar, die wir später in diesem Modul verwenden werden.
Manchmal möchten Sie auch bis zu Ihrer übergeordneten Komponente
zurückkehren, sagen wir hier im MealDetailScreen. Dort können wir auch eine Schaltfläche
hinzufügen und auf dieser Schaltfläche möchte ich zu meinen
Kategorien zurückkehren, sagen wir, und deshalb werde ich onPress hinzufügen und in dieser Funktion hier kann ich Requisiten-Navigations-Pop
verwenden, richtig, weil dies uns zurückbringt .
Nun, das Problem dabei ist natürlich, dass es mich zurückbringt, aber nur zum Bildschirm vor diesem Bildschirm, also zum Bildschirm.
Ich komme von. Ich möchte jedoch zum
Kategorienbildschirm zurückkehren und zwei Bildschirme gleichzeitig überspringen.
Dazu haben Sie Pop to Top. Dies ist
eine weitere Methode, die Sie aufrufen können. Dabei werden einfach alle Bildschirme aus dem Stapel eingeblendet und Sie kehren
zu Ihrem Stammbildschirm zurück.
Wenn Sie also darauf klicken, erhalten wir die Hintergrundanimation und befinden uns wieder auf unserem
Stammbildschirm, in diesem Fall
dem Kategoriebildschirm. Dies ist hier also eine Alternative. Damit gibt es nur noch
eine letzte mögliche Navigationsaktion, die Sie manchmal benötigen. Angenommen, Sie möchten auf dem Kategorienbildschirm zu Kategoriemahlzeiten
wechseln, diese jedoch nicht zum Stapel hinzufügen, sondern stattdessen Ihre aktuelle Komponente im Stapel durch diese ersetzen, sodass immer noch nur
ein Bildschirm vorhanden ist Der Stapel, aber dieser Bildschirm ist dann eine neue Seite. Dies bedeutet
auch, dass Sie nicht
zur neuen Seite zurückkehren können, da der Stapel danach leer wäre, was bedeutet,
dass Ihre App geschlossen wird.
Wenn Sie dies tun möchten, können Sie Ersetzen verwenden. Ersetzen Sie auch so,
wie Push nur eine Kennung wie diese verwendet, und Ersetzen führt Sie auch zum neuen Bildschirm. Es wird jedoch
keine Vorwärtsanimation abgespielt. Stattdessen springt es sofort dorthin und Sie erhalten automatisch keine Zurück-Schaltfläche,
da der Stapel ansonsten leer ist einziger Bildschirm.
Dies kann beispielsweise auf einem Anmeldebildschirm verwendet werden, auf dem sich ein Benutzer angemeldet hat. Nach
der Anmeldung sollte der Benutzer nicht mehr zum
Anmeldebildschirm zurückkehren können. Dann können Sie einfach den Anmeldebildschirm durch Ihren angemeldeten Bildschirm ersetzen im Bildschirm mit
dem Benutzerprofil oder so ähnlich.
Wenn Sie immer noch versuchen, zurückzukehren, passiert nichts, weil Sie nicht zurückkehren können. Es befindet
sich nichts anderes im Stapel. Daher ist das Ersetzen natürlich nicht
das, was wir in dieser App benötigen. Ich wollte dies hier nur vorstellen, obwohl wir mehr verfügbare Muster sehen werden und wie
Sie zwischen Seiten hin und her gehen und wann Sie möglicherweise ersetzen oder zwischen Bildschirmen wechseln
möchten so wie in diesem Modul, wollte es nur schon an dieser Stelle einführen, noch hier werde ich
zurückgehen, um mit dem Routennamen zu navigieren, der auf Kategorie Mahlzeiten zeigt. Damit hatten Sie einen Überblick über einige der grundlegenden Navigationsmethoden, mit denen Sie
zwischen Ihren Bildschirmen hin und her wechseln können. Wie ich bereits erwähnt habe, werden wir in diesem
Modul natürlich viele Muster in Aktion sehen. Im Moment ist dies der Fall, und ich würde sagen, dass es
an der Zeit ist, dieser Anwendung tatsächlich etwas Fleisch hinzuzufügen. Stellen Sie sicher, dass es sich um ein Muster handelt realistischere Anwendung und nicht
nur eine Dummy-Anwendung wie sie derzeit ist.