场景
我正在引导用户从应用程序中的不同屏幕(例如,目标屏幕,景点屏幕,评论屏幕等)导航到loginScreen / signUpScreen,并且成功登录后,我想将他从导航至loginScreen / signupScreen的位置弹出回到同一屏幕。
所以,我想弹出注册/登录过程中涉及的所有屏幕,例如3个屏幕。
我已经尝试过的内容
我已经尝试过navigator.popUntil,但仅当您想每次都弹出回到单个屏幕时,它才可以工作:
推入路线:
Navigator.push(
context,
MaterialPageRoute(
settings: RouteSettings(name: '/loginRedirect'),
builder: (context) => AttractionScreen(
attractionData: att,
)),
);
在signInScreen中弹出路线:
Navigator.popUntil(context, ModalRoute.withName('/loginRedirect'));
但是这种情况仅在您必须路由到单个特定屏幕时有效,但在我的情况下,我必须根据用户被定向到登录屏幕的位置来路由到其他屏幕。
我现在要做什么
现在,我希望有一个实现,在该实现中,成功登录后,我从导航器堆栈中弹出前三个屏幕,我在其中进行了大量搜索,但找不到任何解决方案。那么,如何从导航器堆栈中弹出最后的路线?
我只是有一个以前不确定的解决方案。
我只需要打三遍电话:
Navigator.pop(context)
像这样:
if(needBackRedirect){
Navigator.pop(context);
Navigator.pop(context);
Navigator.pop(context);
}