ログイン後のページなどで前のページに戻らさせたくないのに、iOSだったら画面の左をスワイプしたら前のページに戻り、Androidだったらハードウェアキーの戻るボタンで画面が前のページに戻ってしまいます。~~ネイティブだったら画面遷移するタイミングで今の画面をfinish()などして戻らなくさせる裏技を行えるのですが、ReactNativeには自身を終了させるメソッドはありません。~~react-native-router-fluxを使用時の場合
そこで、前のページに戻らさせない方法を調べたのでここに記します。
##ちなみに
react-native-router-fluxを使って画面遷移を行なっています。
##ログインのある画面遷移でやってみる
<Router>
<Scene key="Root" >
<Scene key="Top" component={Top} hideNavBar={true} initial/>
<Scene key="Login" component={Login} hideNavBar={true} />
<Scene key="Main" component={Main} hideNavBar={true} panHandlers={null}/>
<Scene key="MenuA" component={MenuA} hideNavBar={true} />
<Scene key="MenuB" component={MenuB} hideNavBar={true} />
<Scene key="MenuC" component={MenuC} hideNavBar={true} />
</Scene>
</Router>
このような画面構成のアプリがあるとします。Scene"Login"でログイン成功したらScene"Main"にActionsで画面遷移します。そして、何もしなければ先述した通りScene"Main"からScene"Login"に戻ることができてしまいます。
なので、戻らせないSceneに以下のオプションを設定します。
panHandlers={null}
これだけで解決します。
僕はこのオプションを探すのになかなか苦労しました。見つけてからこのプログラムだけで検索してみると、意外と日本語の記事がありました。いつになったら苦労せずに探せることやら。。。