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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在react-navigation中获取当前路由名称?相关的知识,希望对你有一定的参考价值。

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

答案

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

this.props.navigation.state.routeName
另一答案

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

另一答案

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

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获取当前活动屏幕的状态时,我正在使用它。

以上是关于如何在react-navigation中获取当前路由名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何从react-navigation获取主题类型(Typescript)

使用 react-navigation 重构 - 使用分支时如何提升静态导航标题?

如何在打字稿中使用 react-navigation 的 withNavigation?

如何在@react-navigation/bottom-tabs 中添加阴影?

如何在 React-Navigation 中单击底部选项卡导航器时打开 DrawerNavigator?

如何在堆栈导航器(react-navigation 2.X)中卸载先前安装的组件?