react-navigationでスクリーンの重なりを保持したまま深い階層に飛ぶ
小ネタ
良いタイトルが思いつかなかった
react-navigationでいっきにnavigate()で2つStack詰む方法あるのかな?バックボタン押した時に戻る分も設定したくて
— .あーる (@DotEarl) 2018年4月2日
プッシュ通知からのDeeplinkで特定の深い階層に飛ばしたい時、ただnavigateで飛ばすだけだとバックボタンで戻った時の階層が設定されない
— .あーる (@DotEarl) 2018年4月2日
navigation.navigate('ScreenC')
例えば、こうして直接Screen: C
のコメントページを開いただけだと
バックボタンを押した時にScreen: B
の記事ページが無くてTOPに戻ってしまう
直接Screen: C
に飛んだときでもバックボタンでScreen: B
に戻れるようにしたい
ちょっと調べてみたら簡単だった
navigation.navigate( 'ScreenC', { id: 1000 }, // params navigation.navigate('ScreenB') )
navigate
の第3引数にまたnavigate
を設定するとネストして指定できる
このナビゲーションを実行すると Screen: C
が開いて、バックを押すと Screen: B
に戻るようになる
もちろんもう一度戻れば Screen: A
のTOPにたどり着く