web-dev-qa-db-fra.com

React Navigation V2: Différence entre navigation.Push et navigation.navigate

Je suis nouveau sur React Native et j'étudie actuellement les React Native Navigation Docs . Je me demandais: Quelle est la différence entre navigation.Push() et navigation.navigate()?

J'ai essayé de le découvrir par moi-même, mais ils semblent accomplir exactement la même chose ...

10
J. Hesters

Si vous consultez la documentation pour Push , il y a une explication de leur différence.

L'action Push ajoute un itinéraire au-dessus de la pile et y avance. Cela diffère de la navigation dans laquelle la navigation reviendra plus tôt dans la pile si un composant y est déjà monté. Push s'ajoutera toujours sur le dessus, donc un composant peut être monté plusieurs fois.

Nous pouvons prendre Instagram par exemple;

Pensez à naviguer vers le profil d'un utilisateur. Ensuite, vous pouvez vérifier les abonnés de l'utilisateur et vous pouvez également accéder à leur profil. Si vous effectuez ces mêmes actions avec uniquement l'action navigate, lorsque vous cliquez sur le profil d'un utilisateur dans l'écran de la liste des suiveurs, vous accédez au profil précédent, mais si vous utilisez Push, il pousse un nouvel écran. à la pile et afficher le profil correct. De cette façon, vous pouvez goBack au premier écran.

15
bennygenel

Selon le dernier article de blog ici : pour v1:

navigate(routeName) and Push(routeName) were very similar: every time you called navigate(routeName) it would Push a new route to the stack.

pour v2:

Now navigate(routeName) will first try to find an existing instance of the route and jump to that if it exists, otherwise it will Push the route to the stack.

naviguer> aller à l'instance de la page s'il existe ou pousser une nouvelle instance

Push> Push une nouvelle instance même si une existe déjà

4
Poptocrack