Maintenant, nous avons regardé la navigation de base avec la navigation et la navigation est votre outil le
plus important, mais en fait, lorsque vous êtes à l'intérieur d'un écran, d'un composant chargé à l'aide d'un navigateur de
pile, vous avez des alternatives pour naviguer.
Vous pouvez également utiliser push au lieu de naviguer, bien que cela ne prenne pas d'objet Javascript mais prend simplement
le nom de l'itinéraire ici,
dans ce cas, la catégorie repas comme premier argument et avec cela, vous obtiendrez le même comportement qu'auparavant.
La question est bien sûr pourquoi voudriez-vous alors utiliser cela.
Premièrement, c'est un peu plus court que naviguer parce que vous ne passez pas
un objet mais ce
n'est pas la raison principale, à la place, utiliser push ici peut être utile si vous voulez aller sur une page où vous êtes déjà.
Maintenant, laissez-moi vous montrer ce que je veux dire.
Si je reviens à cela et que je navigue vers les catégories ici, alors vers l'écran
de catégorie qui est l'écran dans lequel je suis déjà. Si je fais cela avec la navigation, ce que vous verrez,
c'est que rien ne se passe si j'appuie dessus.
Maintenant, si j'utilise push à la place et que je passe simplement des catégories comme premier argument parce que c'est ainsi que push fonctionne,
vous verrez que maintenant cela fonctionne et je peux aller sur le même écran encore et encore et
il est poussé sur la même pile et encore.
Maintenant, bien sûr, vous vous demandez peut-être pourquoi je voudrais pousser à nouveau l'écran sur lequel je suis déjà.
Maintenant, dans de nombreuses applications, vous n'en aurez peut-être pas besoin, mais disons que vous créez une application comme Dropbox dans laquelle vous
avez des dossiers entre
lesquels vos utilisateurs peuvent naviguer, si vous
êtes dans un dossier, vous voulez aller dans un autre dossier.
Maintenant, chaque dossier est techniquement le même écran de dossier, juste avec un contenu différent chargé. Dans un tel cas, vous voudrez peut-être passer du dossier A
à B qui utilise le même composant, le même écran à la fin mais avec un contenu différent,
dans un tel cas, vous pouvez utiliser push pour toujours pouvoir pousser ce nouvel écran qui est le
même écran sur la pile et charge le même écran avec un contenu différent, ce serait un scénario où vous
pourriez en avoir besoin. Dans cette application, nous
n'en avons pas besoin, il n'y a donc pas besoin de pousser, mais vous l'avez dans des
scénarios où la
navigation ne vous mènerait pas à cet écran,
la poussée le fera toujours à l'intérieur d'un navigateur de pile. Ici cependant, je reviendrai sur ceci pour naviguer qui prend un objet avec un nom de route qui
pointe ensuite sur les catégories car ici, nous n'avons absolument pas besoin de pousser, c'est-à-dire les repas de catégorie. Donc, cela va faire pour cette application, maintenant vous avez également
d'autres options de
navigation explicites, disons à partir de l'écran de
catégorie de repas, vous voulez pouvoir revenir en arrière.
Bien sûr, nous pouvons revenir en arrière avec l'aide de ce bouton de retour, mais ce n'est pas si
inhabituel que dans certaines applications, vous avez quelque chose que vos utilisateurs peuvent faire là où vous voulez les ramener à
l'époque, par exemple disons vous êtes sur une page où vous pouvez configurer une configuration et
lorsque vous cliquez sur le bouton Enregistrer, vous souhaitez enregistrer cette configuration et vous souhaitez également quitter l'écran.
Maintenant, pour ce scénario, vous voudrez peut-être déclencher une navigation arrière manuellement et n'attendez pas que l'utilisateur appuie sur
le bouton de retour, car cela pourrait forcer l'utilisateur à appuyer d'abord sur un bouton de sauvegarde, puis
à revenir manuellement, ce qui n'est pas la meilleure expérience utilisateur.
Donc ici, je vais en quelque sorte simuler cela en ayant juste un bouton de retour ici dans notre écran, donc dans
notre code jsx et lorsque nous appuyons sur cela, je veux pouvoir revenir en arrière, je veux manuellement
déclencher une navigation arrière.
Vous pouvez le faire avec l'aide de l'accessoire de navigation, car là, vous avez une méthode de retour que vous
pouvez appeler et qui fait exactement ce que cela ressemble.
Si nous sauvegardons cela et je vais aux repas, si je clique sur Retour, nous jouons la navigation arrière.
Techniquement, cela sort de l'écran sur lequel nous sommes et revient donc
à l'écran précédent dans la pile. Comme alternative pour revenir en arrière, si vous êtes dans un navigateur de
pile, vous avez également pop qui fait ce que le
nom implique, il saute de l'écran actuel sur la pile et puisque vous voyez toujours l'écran le plus haut sur votre appareil, cela aussi joue
la navigation arrière, c'est donc une alternative au retour. La différence est que pop ne peut être utilisé que si vous
êtes dans
un navigateur de pile, le retour est également disponible dans d'autres navigateurs que nous utiliserons plus tard dans ce module.
Parfois, vous voudrez également revenir à votre composant
parent, disons ici dans le MealDetailScreen. Là, nous pouvons également ajouter un bouton
et sur ce bouton ici, je veux revenir à mes
catégories disons et donc, je vais ajouter onPress et dans cette fonction ici, je peux utiliser des accessoires de navigation
pop, à droite, car cela nous ramène .
Eh bien, le problème avec cela est bien sûr, cela me ramène, mais seulement à l'écran avant cet écran, donc à l'écran.
Je venais de. Je veux revenir à l'écran des
catégories, donc je veux sauter deux écrans en même temps.
Pour cela, vous avez pop to top, c'est
une autre méthode que vous pouvez appeler qui apparaît simplement de tous les écrans de la pile et vous ramène
à votre écran racine.
Donc, si vous cliquez dessus, nous obtenons l'animation de retour et nous sommes de retour sur notre écran
racine qui dans ce cas
est l'écran de catégorie, c'est donc une alternative ici. Maintenant, avec cela, il n'y a qu'une
dernière action de navigation possible dont vous pourriez parfois avoir besoin. Disons que sur l'écran des catégories, vous voulez aller dans
la catégorie des repas mais vous ne voulez pas l'ajouter à la pile mais vous voulez plutôt remplacer votre composant actuel dans la pile par lui,
de sorte qu'il n'y ait toujours qu'un seul écran dans la pile, mais cet écran est alors une nouvelle page,
cela signifie également que vous
ne pourrez pas revenir sur la nouvelle page car la pile serait vide par la suite, ce
qui signifie que votre application se ferme.
Donc, si vous voulez le faire, vous pouvez utiliser replace. Remplacez également comme push prend
juste un identifiant comme celui-ci et replace vous amène également au nouvel écran, il ne joue pas d'animation vers l'avant cependant, au
lieu de cela il saute instantanément là-bas et vous n'obtenez pas de bouton de retour automatiquement parce
que la pile est vide sinon, c'est la seul écran.
Cela pourrait être utilisé par exemple sur un écran de connexion où un utilisateur s'est connecté et une fois
connecté, l'utilisateur ne devrait pas pouvoir revenir à l'écran
de connexion, eh bien, vous pouvez simplement remplacer l'écran de connexion par votre connexion à l'écran avec le profil
utilisateur ou quelque chose comme ça.
Si vous essayez toujours de revenir en arrière, rien ne se passe parce que vous ne pouvez pas revenir en arrière,
il n'y a rien d'autre dans la pile. Par conséquent, bien sûr, remplacer n'est absolument
pas ce dont nous avons besoin dans cette application, je voulais juste présenter ceci ici, bien que nous verrons plus de modèles disponibles et comment
vous allez et vient entre les pages et quand vous voudrez peut-être remplacer ou basculer entre les
écrans comme ça tout au long de ce module, je voulais juste l'introduire déjà à ce point, toujours là, je
vais revenir naviguer avec le nom de l'itinéraire pointant sur la catégorie repas. Et avec cela, vous avez eu un aperçu de certaines des méthodes de navigation de base
qui vous permettent de faire des allers-retours entre vos écrans. Comme je l'ai mentionné, nous verrons bien sûr
de nombreux modèles en action tout au long de ce module, pour l'instant, c'est tout et je dirais
qu'avec cela, il est temps d'ajouter de la viande à cette application, assurez-vous que c'est un une application plus réaliste et pas seulement
une application factice comme elle l'est actuellement.