1)react-navigation v2以降で戻るボタンを非表示にするには:
navigationOptions: {
title: 'MyScreen',
headerLeft: null
}
2)ナビゲーションスタックをクリーンアップする場合:
ナビゲートしたい画面が表示されていると仮定します。
あなたが反応し、ナビゲーションバージョンV5以降を使用している場合、あなたは使用することができますnavigation.reset
かCommonActions.reset
。
navigation.reset({
index: 0,
routes: [{ name: 'Profile' }],
});
ソースと詳細はこちら:https://reactnavigation.org/docs/navigation-prop/#reset
または:
navigation.dispatch(
CommonActions.reset({
index: 1,
routes: [
{ name: 'Home' },
{
name: 'Profile',
params: { user: 'jane' },
},
],
})
);
ソースと詳細はこちら:https://reactnavigation.org/docs/navigation-actions/#reset
古いバージョンのreact-navigationの場合:
v2-v4の使用StackActions.reset(...)
import { StackActions, NavigationActions } from 'react-navigation';
const resetAction = StackActions.reset({
index: 0,
actions: [
NavigationActions.navigate({ routeName: 'myRouteWithDisabledBackFunctionality' }),
],
});
this.props.navigation.dispatch(resetAction);
v1の使用NavigationActions.reset
3)Androidの場合、BackHandlerを使用してハードウェアの戻るボタンも無効にする必要があります。
http://reactnative.dev/docs/backhandler.html
またはフックを使用したい場合:
https://github.com/react-native-community/hooks#usebackhandler
それ以外の場合、ナビゲーションスタックが空の場合、アプリはAndroidハードウェアの戻るボタンを押すと閉じます。