我无法在使用Go路由器进行路由时访问state.queryParameters。在doc中给出了以下示例:
GoRoute(
path: '/users',
builder: (context, state) => const UsersScreen(filter: state.queryParameters['filter']),
)
以下是我如何实现整个事情:
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.queryParameters['name']!
)),
]),
]
);
虽然它可以很好地使用pathParameter,但是state.queryParameters不能被访问。我收到以下错误消息:Error: The getter 'queryParameters' isn't defined for the class 'GoRouterState'.
我用go_router: 10.1.2
。有人知道该怎么做吗?
2条答案
按热度按时间laawzig21#
最新的go_router包有一个突破性的变化,它用uri替换了访问位置、queryParamters和queryParameterAll
所以与其像这样访问queryParamters
它已被替换为
你可以在这里阅读更多go_router_migration_guide
uurv41yg2#
有一个中断change on go_router v10。
你需要改变就像