react-navigationでスクリーンの重なりを保持したまま深い階層に飛ぶ

小ネタ

良いタイトルが思いつかなかった

navigation.navigate('ScreenC')

例えば、こうして直接Screen: Cのコメントページを開いただけだと

バックボタンを押した時にScreen: Bの記事ページが無くてTOPに戻ってしまう

直接Screen: Cに飛んだときでもバックボタンでScreen: Bに戻れるようにしたい

f:id:rskull:20180402163002p:plain

ちょっと調べてみたら簡単だった

navigation.navigate(
    'ScreenC',
    { id: 1000 }, // params
    navigation.navigate('ScreenB')
)

navigateの第3引数にまたnavigateを設定するとネストして指定できる

このナビゲーションを実行すると Screen: Cが開いて、バックを押すと Screen: Bに戻るようになる

もちろんもう一度戻れば Screen: AのTOPにたどり着く

📝 Navigation prop reference · React Navigation