79 votes

Comment obtenir le nom actuel de l'itinéraire dans React-Navigation?

Je veux le nom de la route ou de l'écran actuel dans react-navigation que je veux utiliser à l'intérieur si condition pour apporter des modifications.

108voto

ppuppim Points 726

Pour react-navigation v5:

 import {useRoute} from '@react-navigation/native';

const route = useRoute();
console.log(route.name);

60voto

Hussam Kurd Points 419

Vous pouvez l'attraper comme le code suivant:

 this.props.navigation.state.routeName

31voto

gianlucaparadise Points 1194

Si vous utilisez des navigateurs imbriqués, vous pouvez utiliser ce code pour obtenir l'état actuel de l'écran actif

 import { NavigationState } from 'react-navigation';

const getActiveRouteState = function (route: NavigationState): NavigationState {
    if (!route.routes || route.routes.length === 0 || route.index >= route.routes.length) {
        return route;
    }

    const childActiveRoute = route.routes[route.index] as NavigationState;
    return getActiveRouteState(childActiveRoute);
}

Usage:

 const activeRoute = getActiveRouteState(this.props.navigation.state);

J'utilise ceci lorsque j'ai besoin d'obtenir l'état actuel de l'écran actif à partir de NavigationDrawer.

18voto

Subrat Mishra Points 167

Cela fonctionne bien dans react-navigation v5.x

 this.props.route.name

13voto

Rishabh Points 1399

Tout en utilisant "react-navigation": "^3.0.8" et DrawerNavigator, il est accessible à partir de l'objet this.props en utilisant this.props.activeItemKey

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X