目標
React ナビゲーションを使用して、ナビゲーター内の画面から別のナビゲーター内の画面に移動します。
もっと詳しく
次のようなナビゲーター構造があるとします。
- 保護者ナビゲーター
- ネストされたナビゲーター 1
- スクリーンA
- スクリーンB
- ネストされたナビゲーター 2
- スクリーンC
- スクリーンD
- ネストされたナビゲーター 1
ネストされたナビゲーター 2 の下の画面 D から、ネストされたナビゲーター 1 の下の画面 A に移動するにはどうすればよいですか? 現在、navigation.navigate
画面 D から画面 A に移動しようとすると、画面 A は認識されず、画面 C と D のみが認識されるというエラーが発生します。
この質問は、このサイトやGitHubのさまざまな場所でさまざまな形で寄せられていることを私は知っています。https://github.com/react-navigation/react-navigation/issues/983、https://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'
}
});