1) Per far scomparire il pulsante Indietro in React-Navigation v2 o più recente:
navigationOptions: {
title: 'MyScreen',
headerLeft: null
}
2) Se vuoi pulire lo stack di navigazione:
Supponendo che tu sia sullo schermo da cui desideri navigare:
Se stai utilizzando la versione di navigazione reattiva v5 o successiva , puoi utilizzare navigation.reset
o CommonActions.reset
:
navigation.reset({
index: 0,
routes: [{ name: 'Profile' }],
});
Fonte e maggiori informazioni qui: https://reactnavigation.org/docs/navigation-prop/#reset
O:
navigation.dispatch(
CommonActions.reset({
index: 1,
routes: [
{ name: 'Home' },
{
name: 'Profile',
params: { user: 'jane' },
},
],
})
);
Fonte e maggiori informazioni qui: https://reactnavigation.org/docs/navigation-actions/#reset
Per le versioni precedenti di React-Navigation:
v2-v4 utilizzoStackActions.reset(...)
import { StackActions, NavigationActions } from 'react-navigation';
const resetAction = StackActions.reset({
index: 0,
actions: [
NavigationActions.navigate({ routeName: 'myRouteWithDisabledBackFunctionality' }),
],
});
this.props.navigation.dispatch(resetAction);
v1 usoNavigationActions.reset
3) Per Android dovrai anche disabilitare il pulsante hardware indietro usando BackHandler :
http://reactnative.dev/docs/backhandler.html
o se vuoi usare gli hook:
https://github.com/react-native-community/hooks#usebackhandler
altrimenti l'app si chiuderà premendo il pulsante Indietro dell'hardware Android se lo stack di navigazione è vuoto.