在我的应用程序中,我有一个HomePage
,显示一些选定的帖子和一个PostListPage
。从这两个页面我打开的职位。
我有这个路线结构。
GoRouter(
routes: [
GoRoute(
path: "/",
builder: (context, state) => HomePage(),
routes: [
GoRoute(
path: "post/:id",
builder: (context, state) => // ...
),
GoRoute(
path: "posts",
builder: (context, state) => PostListPage()
)
],
),
],
);
当我用GoRouter.go
在主页上打开一个帖子时,它会按预期工作,但是当我从PostListPage打开一个帖子时,后退按钮会路由回HomePage,而它应该路由回PostListPage。
我该怎么办?
我知道我可以使用GoRouter.push
代替,但是,在web上,通过push,路由不会反映在URL中,因此,当在PostPage上刷新浏览器时,它会在HomePage上启动应用程序。
我可以使用GoRouter.optionURLReflectsImperativeAPIs
选项来避免这个URL问题,但文档说“强烈建议不要将此值设置为true”。
1条答案
按热度按时间c9qzyr3d1#
如果你想从主页和帖子列表页面同时拥有一个
post/:id
路由,你可以在posts
下添加一个子路由:从主页导航时,用途:
从文章列表中:
在此之后,导航返回应该按预期的方式进行。
这是一个可以在DartPad中运行的简单示例: