web-dev-qa-db-fra.com

Comment obtenir le nom de l'itinéraire actuel dans react-navigation?

Je veux le nom de l’itinéraire ou de l’écran en cours dans react-navigation que je veux utiliser à l’intérieur si la condition le permet.

13
Eshant Bist

Vous pouvez l'attraper sous le code suivant:

this.props.navigation.state.routeName
22
Hussam Kurd

En utilisant "react-navigation": "^3.0.8" et DrawerNavigator, il est accessible à partir de l’objet this.props à l’aide de this.props.activeItemKey

10
Rishabh

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

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 de l'écran actif actuel auprès de NavigationDrawer.

9
gianlucaparadise

J'ai plusieurs TabNavigators imbriqués dans un BottomTabNavigator. Je reçois la route actuelle du TabNavigator avec:

    const pathAndParams = props.navigation.router.getPathAndParamsForState(props.navigation.state) || {}
    const activePath = pathAndParams.path
1
Areg