2017-12-20 7 views
3

したがって、反応するネイティブナビゲーションの代わりにjavascript navbar(this bugのため)を使用している画面があります。私は戻ることができるかどうかを確認する/反応ネイティブナビゲーションでポップを使用しますか?

戻るボタンは、戻ることができる場合のみ表示する必要があります(スタックの最初の画面でない場合)。

戻ることができるかどうかを確認する方法はありますか? navigator.canBoBack()またはnavigator.getCurrentScreenStack().lenght > 1のようなもの。このように戻ってあなたのことがあればあなたが追跡することができる

+0

@Siggyありがとうございますが、私の問題は、ブラウザではなく、 'react-native'の' react-native-navigation'ライブラリに固有のものです。もっと明確にするためにタイトルに追加しました。 –

答えて

3

チェックした場合、それに応じてセットボタンを呼び出します。

const prevGetStateForAction = Navigator.router.getStateForAction; 

Navigator.router.getStateForAction = (action, state) => { 
    // Do not allow to go back from Login 
    if (action.type === "Navigation/BACK" && state && state.routes[state.index].routeName === "Login") { 
    return null; 
    } 
    // Do not allow to go back to Login 
    if (action.type === "Navigation/BACK" && state) { 
    const newRoutes = state.routes.filter(r => r.routeName !== "Login"); 
    const newIndex = newRoutes.length - 1; 
    return prevGetStateForAction(action, { index: newIndex, routes: newRoutes }); 
    } 
    return prevGetStateForAction(action, state); 
}; 

はこれを参照してください。

const canGoBack = 
     this.props.commandType === 'Push' || 
     this.props.commandType === 'ShowModal' 
+1

ありがとう!それは問題を解決します。コードスニペットを追加するように編集しました。 –

0

:画面のcommandType小道具は、どちらかPushShowModalある https://github.com/react-community/react-navigation/issues/295

+0

ありがとうございますが、私は反応ナビゲーションを使用していません。反応ネイティブナビゲーションを使用しています。https://github.com/wix/react-native-navigation –

関連する問題