1) Pour faire disparaître le bouton retour dans react-navigation v2 ou plus récent :
v2-v4 :
navigationOptions: {
title: 'MyScreen',
headerLeft: null
}
v5 :
{
navigationOptions: {
title: 'MyScreen',
headerLeft: ()=> null, // Note: using just `null` instead of a function should also work but could trigger a TS error
}
2) Si vous voulez nettoyer la pile de navigation :
En supposant que vous êtes sur l'écran à partir duquel vous voulez naviguer :
Si vous utilisez react-navigation version v5 ou plus récente vous pouvez utiliser navigation.reset
ou CommonActions.reset
:
// Replace current navigation state with a new one,
// index value will be the current active route:
navigation.reset({
index: 0,
routes: [{ name: 'Profile' }],
});
Source et plus d'informations ici : https://reactnavigation.org/docs/navigation-prop/#reset
Ou :
navigation.dispatch(
CommonActions.reset({
index: 1,
routes: [
{ name: 'Home' },
{
name: 'Profile',
params: { user: 'jane' },
},
],
})
);
Source et plus d'informations ici : https://reactnavigation.org/docs/navigation-actions/#reset
Pour les anciennes versions de react-navigation :
v2-v4 utiliser StackActions.reset(...)
import { StackActions, NavigationActions } from 'react-navigation';
const resetAction = StackActions.reset({
index: 0, // <-- currect active route from actions array
actions: [
NavigationActions.navigate({ routeName: 'myRouteWithDisabledBackFunctionality' }),
],
});
this.props.navigation.dispatch(resetAction);
v1 utiliser NavigationActions.reset
3) Pour Android, vous devez également désactiver le bouton de retour matériel en utilisant le BackHandler. :
http://reactnative.dev/docs/backhandler.html
ou si vous voulez utiliser des crochets :
https://github.com/react-native-community/hooks#usebackhandler
Sinon, l'application se fermera lorsque le matériel Android appuiera sur le bouton retour si la pile de navigation est vide.
Sources supplémentaires : merci aux utilisateurs qui ont ajouté des commentaires ci-dessous et qui ont aidé à maintenir cette réponse à jour pour la v5.
0 votes
Dans la version 4 et plus ancienne, essayez ceci :
headerLeft:()=>null