[英]What is the best way to push replace with arguments in flutter?
我正在尝试在这里找到适合这种情况的最佳路由解决方案。 我有如下工作流程的屏幕。
Items Screen(1) ===> Item Details Screen(2) ====> Edit Items Screen(3)
在编辑项目屏幕上,当我编辑内容并保存时,它应该将用户带回项目详细信息屏幕,其中一些对象和变量作为路由参数传递。
我使用pushReplacementNamed("/details", arguments: ItemDetailsArguments(item: item, variables: variables));
在编辑项目屏幕上单击按钮。
这工作正常,直到我注意到当我单击应用栏上的后退按钮(项目详细信息屏幕(2))时,它再次将我带回编辑项目屏幕(3)而不是项目屏幕(1) .
是否有更好的方法在单击按钮时将数据从屏幕 3 传递到屏幕 2,然后在屏幕 2 按下后退按钮时将用户带回屏幕 1?
取而代之的是的pushReplacementNamed
可以使用pushNamedAndRemoveUntil
与谓词从堆栈中删除不需要的航线。
阅读有关pushNamedAndRemoveUntil 的更多信息
pushNamedAndRemoveUntil(
"/details",
ModalRoute.withName("/items"), // screen one - route predicate
arguments: ItemDetailsArguments(item: item, variables: variables),
);
路由谓词将让您决定需要从堆栈中删除什么。
在这种情况下,单击按钮后,推送到“详细信息屏幕”并删除堆栈中的所有其他路由,直到主屏幕。 希望能帮助到你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.