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

使用go_router路由时无法访问state.queryParameters的问题

解决go_router 10.1.2版本无法访问state.queryParameters的问题

你遇到的问题是因为go_router 10.x版本已经移除了GoRouterState类中的queryParameters属性,官方文档的示例可能基于更新版本,因此和你当前使用的10.1.2版本不兼容。

解决方法

将代码中的state.queryParameters替换为state.uri.queryParameters即可正常获取查询参数。

修改后的代码如下:

final GoRouter _router = GoRouter(    
    routes: [
      GoRoute(
          path: "/",
          builder: (context, state) => const Dashboard(),
          routes: [
       
        // 1. pathParameter
        GoRoute(path: "profile/:name", builder: (context, state) => Profile(
          name: state.pathParameters["name"]!
        )),
        // 2. queryParameter(已修复)
        GoRoute(path: "settings", builder: (context, state) => Settings(
            name: state.uri.queryParameters['name']!
        )),
      ]),
    ]
  );

版本差异说明

在go_router的10.x版本中,GoRouterState的查询参数相关API发生了变更:

  • 10.x之前版本:直接通过state.queryParameters获取查询参数
  • 10.x及之后版本:URI相关信息统一放到uri属性下,需通过state.uri.queryParameters获取查询参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 20:12:51