所以我希望用户在到达某个页面后能够返回到“/”命名的路径,条件是当到达该页面时,用户应该只被路由到Navigator.pop(上下文)上的“/”。
例如,假设我的路由配置为:
用户位于“/”〉单击按钮并将“名称”推入“/abc”〉单击按钮并将“名称”推入“/xyz”〉单击按钮并将“名称”推入“/mnq”
现在,我希望当用户位于/mnq并且执行Navigator.pop(context)时,用户应该被发送回“/”,而不是其他任何地方。
当我在/xyz时,我尝试执行Navigator.pushNamedAndRemoveUntil(context,'/mnq',ModalRoute.withName('/'),arguments:....),但它不起作用,因为当到达/mnq后执行Navigator.pop时,我看到黑屏。
是否有办法做到这一点。请注意,我需要将参数从/xyz发送到/mnq。
3条答案
按热度按时间sdnqo3pr1#
您可以尝试使用
pushReplacementNamed()
'/'
推送命名为'/abc'
推送替换命名为'/xyz'
推送替换命名为'/mnq
'有关详细信息,请阅读此article
smdncfj32#
pushNamedAndRemoveUntil是删除之前所有页面。当您使用back/pop时,它将显示黑色,因为之前没有页面。您可以使用pushReplacementNamed Flutter - Pass values between routes using pushReplacementNamed传递参数或将数据存储在本地https://pub.dev/packages/shared_preferences中
gopyfrb33#
第1次按下按钮时,用户应返回“/”
只需使用
Navigator.popUntil(context, ModalRoute.withName('/'));
代替
Navigator.pop(context);
第二步,如果用户选择后退按钮