如何从导航器堆栈中弹出最后三条路线

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

场景

我正在引导用户从应用程序中的不同屏幕(例如,目标屏幕,景点屏幕,评论屏幕等)导航到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'));

但是这种情况仅在您必须路由到单个特定屏幕时有效,但在我的情况下,我必须根据用户被定向到登录屏幕的位置来路由到其他屏幕。

我现在要做什么

现在,我希望有一个实现,在该实现中,成功登录后,我从导航器堆栈中弹出前三个屏幕,我在其中进行了大量搜索,但找不到任何解决方案。那么,如何从导航器堆栈中弹出最后的路线?

flutter routes navigation navigator flutter-navigation
1个回答
0
投票

我只是有一个以前不确定的解决方案。

我只需要打三遍电话:

Navigator.pop(context)

像这样:

if(needBackRedirect){
    Navigator.pop(context);
    Navigator.pop(context);
    Navigator.pop(context);
}
© www.soinside.com 2019 - 2024. All rights reserved.