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.
Vous pouvez l'attraper sous le code suivant:
this.props.navigation.state.routeName
En utilisant "react-navigation": "^3.0.8"
et DrawerNavigator, il est accessible à partir de l’objet this.props à l’aide de this.props.activeItemKey
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.
J'ai plusieurs TabNavigator
s 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