web-dev-qa-db-ja.com

React Navigation V2:navigation.Pushとnavigation.navigateの違い

私はReact Nativeであり、現在 React Native Navigation Docs を研究しています。疑問に思っていました:navigation.Push()およびnavigation.navigate()

私は自分でそれを見つけようとしましたが、彼らはまったく同じことを達成するようです...

10
J. Hesters

Push のドキュメントを確認すると、それらの違いについての説明があります。

プッシュアクションは、スタックの上にルートを追加し、そのルートに進みます。これは、コンポーネントが既にそこにマウントされている場合、ナビゲートがスタック内の前の部分に戻るという点でナビゲートとは異なります。プッシュは常に上に追加されるため、コンポーネントは複数回マウントできます。

たとえば、Instagramを使用できます。

ユーザーのプロファイルへの移動を検討してください。次に、ユーザーのフォロワーを確認してから、そのユーザーのプロファイルに移動することもできます。 navigateアクションのみでこの同じアクションを実行すると、フォロワーリスト画面からユーザーのプロファイルをクリックすると前のプロファイルに移動しますが、Pushを使用すると新しい画面がプッシュされますスタックに追加し、正しいプロファイルを表示します。この方法で、最初の画面にgoBackできます。

15
bennygenel

前回のブログ投稿によると here :v1の場合:

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

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.

ナビゲート>存在する場合はページのインスタンスに移動、または新しいインスタンスをプッシュ

プッシュ>既に存在する場合でも新しいインスタンスをプッシュする

4
Poptocrack