如何在react-navigation中获取当前路由名称?

问题描述 投票:1回答:3

如果条件做出一些改变,我想要反应导航中当前路线或屏幕的名称,我想在里面使用它。

android ios react-native react-navigation
3个回答
9
投票

您可以按以下代码捕获它:

this.props.navigation.state.routeName

7
投票

使用"react-navigation": "^3.0.8"和DrawerNavigator时,可以使用this.props.activeItemKey从this.props对象访问它


5
投票

如果使用嵌套导航器,则可以使用此代码获取当前活动屏幕的状态

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);
}

用法:

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

当我需要从NavigationDrawer获取当前活动屏幕的状态时,我正在使用它。

© www.soinside.com 2019 - 2024. All rights reserved.