Reactナビゲーションで異なるネストされたスタック間を移動する方法 質問する

Reactナビゲーションで異なるネストされたスタック間を移動する方法 質問する

目標

React ナビゲーションを使用して、ナビゲーター内の画面から別のナビゲーター内の画面に移動します。

もっと詳しく

次のようなナビゲーター構造があるとします。

  • 保護者ナビゲーター
    • ネストされたナビゲーター 1
      • スクリーンA
      • スクリーンB
    • ネストされたナビゲーター 2
      • スクリーンC
      • スクリーンD

ネストされたナビゲーター 2 の下の画面 D から、ネストされたナビゲーター 1 の下の画面 A に移動するにはどうすればよいですか? 現在、navigation.navigate画面 D から画面 A に移動しようとすると、画面 A は認識されず、画面 C と D のみが認識されるというエラーが発生します。

この質問は、このサイトやGitHubのさまざまな場所でさまざまな形で寄せられていることを私は知っています。https://github.com/react-navigation/react-navigation/issues/983https://github.com/react-navigation/react-navigation/issues/335#issuecomment-280686611) ですが、非常に基本的な問題であるため、明確な答えが不足しており、解決策を探すために何百もの GitHub コメントをスクロールするのはあまり良いことではありません。

おそらく、この質問は、この非常に一般的な問題に直面しているすべての人にとって、これをどのように行うかを体系化できるでしょう。

ベストアンサー1

React Navigation 5 では、画面を 2 番目のパラメータとして渡すことで、これがはるかに簡単になります。

navigation.navigate('Nested Navigator 2', { screen: 'screen D' });

深くネストされた画面がある場合は、追加のレベルを含めることもできます。

navigation.navigate('Nested Navigator 2', {
    screen: 'Nested Navigator 3', params: {
        screen: 'screen E'
    }
});

おすすめ記事