在 Flutter Navigator 2.0 中,如何“返回”导航,同时保持浏览器历史记录同步?

问题描述 投票:0回答:1

我已经在我的 Flutter Web 应用程序中实现了 Navigator 2.0 导航。

假设我浏览该应用程序(这是一个用于管理宠物的简单 CRUD 应用程序),这样我就有一个页面列表和浏览器历史记录,如下所示:

Pages:   [/home, /pets, /add-pet]

History: [/home, /pets, /add-pet]

添加宠物并按下“保存”后,我会自动导航回

/pets
列表,因此页面和历史记录现在看起来像:

Pages:   [/home, /pets]

History: [/home, /pets, /add-pet, /pets]

所以现在我在

/pets
页面上,我决定按浏览器上的“后退”以转到
/home
,但我按“后退”并转到
/add-pet
,因为这就是其中的内容历史。

我应该如何自动(不按“后退”按钮)从

/add-pet
导航回
/pets
,以便浏览器历史记录代表该情况并从历史记录中删除
/add-pet

flutter routes navigation navigator
1个回答
0
投票

当您处于“添加宠物”路线时,您只需要

Navigator.pop(context);
,即可:

  • 关闭
  • 从历史堆栈中删除自身

您最终将获得干净的

[/home, /pets]
历史记录

文档:https://api.flutter.dev/flutter/widgets/Navigator-class.html

还可以看看其他有趣的功能,例如

popUntil
pushReplacement

© www.soinside.com 2019 - 2024. All rights reserved.