如何在Flutter中使用go_router获取当前路由的名称?
如何从URI获取对应路由名称
根据你的需求,在完成路由迁移后,可通过当前路由的匹配记录提取对应的路由名称,以下是不同技术栈的实现方式:
Vue Router(Vue 3)
直接通过路由实例获取名称:
import { useRoute } from 'vue-router' const currentRoute = useRoute() console.log(currentRoute.name) // 输出示例中的 product_details
React Router v6
结合路由配置与当前位置匹配获取名称:
import { useLocation, matchRoutes } from 'react-router-dom' import yourRouteConfig from './path-to-your-routes' // 你的路由配置数组 const location = useLocation() const matchedRoutes = matchRoutes(yourRouteConfig, location) if (matchedRoutes.length) { console.log(matchedRoutes[0].route.name) // 输出目标路由名称 }
Flutter GoRouter
通过路由状态获取名称:
// 在组件内获取 final currentRouteName = GoRouterState.of(context).name; // 或通过路由实例获取 final routeName = GoRouter.of(context).routeInformationProvider.value.routeName;
通用注意事项
- 确保你的路由配置中,每个URI规则都明确设置了对应的
name字段(如示例中的product_details); - 若使用自定义路由系统,需在URI匹配逻辑中同步返回路由名称元数据。
内容的提问来源于stack exchange,提问作者devblock
相关产品推荐
相关产品推荐

