You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GoRoute构建器外通过go_router获取当前路由的queryParams?

在GoRoute构建器之外获取go_router的query参数

要在GoRoute构建器之外获取当前路由的queryParams,有两种常用方式:

有Context的场景

直接通过GoRouter.of(context)获取路由实例,再从路由信息提供者中提取URI的查询参数:

// 获取当前路由的query参数集合
final queryParams = GoRouter.of(context).routeInformationProvider.value.uri.queryParameters;

比如当前路径是/product/10110?name=phone&sku=10110,queryParams就会返回{'name': 'phone', 'sku': '10110'}。

无Context的场景(如全局服务、工具类)

如果需要在没有BuildContext的地方获取参数,可以提前把GoRouter实例全局存储:

  1. 初始化时创建全局的GoRouter实例:
// 全局变量或注入到依赖管理中
final appRouter = GoRouter(
  routes: [
    // 你的路由配置
    GoRoute(path: '/product/:id', builder: (context, state) => ProductPage()),
  ],
);
  1. 在任意地方直接调用:
final queryParams = appRouter.routeInformationProvider.value.uri.queryParameters;

另外,routeInformationProvider.value.uri还包含了完整的路由URI信息,你可以通过它获取路径、片段等其他路由相关数据。

内容的提问来源于stack exchange,提问作者Aristidios

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 23:00:57