、反応ネイティブのデフォルトバックボタンの動作は、スタック内の前の画面に戻ってナビゲートすることです。アプリを終了するための画面が1つしかないときにデバイス戻るボタンを押すと、カスタム設定が必要です。これは、特定のStackNavigatorのルータのgetStateForActionメソッドを変更することによって、各スクリーンに処理コードを追加する必要なく達成できます。
は、アプリケーション
const ScreenStack = StackNavigator(
{
'Screen1': {
screen: Screen1
},
'Screen2': {
screen: Screen2
},
},
{
initialRouteName: 'Screen1'
}
);
スタックナビゲータのルータのgetStateForAction方法が期待されるバック動作を実現するために、次のように修正することができ、以下のStackNavigatorを使用していると仮定します。
const defaultStackGetStateForAction =
ScreenStack.router.getStateForAction;
ScreenStack.router.getStateForAction = (action, state) => {
if(state.index === 0 && action.type === NavigationActions.BACK){
BackHandler.exitApp();
return null;
}
return defaultStackGetStateForAction(action, state);
};
state.index
スタック内の1つの画面がある場合にのみ0
なります。
https://reactnavigation.org/を使用して、アンドロイドの戻るボタンを処理しました –