Flutter/Dart - 向前传递上下文以便 Navigator.pop 返回两个上下文?

Flutter/Dart - Pass Context Forward in order to Navigator.pop two Contexts back?

我需要能够弹出两个页面。当我使用命名路由动态创建页面时,这是不切实际的。那么有没有一种方法可以将上下文从原始页面传递到目标页面?

在我原来的页面上;

Navigator.push(

    context,
    MaterialPageRoute(builder: (originalcontext) => SecondRoute()),

  );

然后在 SecondRoute 的页面上我有:

Navigator.push(

    context,
    MaterialPageRoute(builder: (originalcontext) => ThirdRoute()),

  );

然后在 ThirdRoute 页面上,我想跳回原始页面 - 绕过 SecondRoute 页面。

Navigator.pop(originalcontext);

您可以这样定义 SecondRoute :

class SecondRoute extends StatelessWidget
{
 final BuildContext originalContext;
 
//other properties

SecondRoute({this.originalContext}); //Initialize other properties 

//Now use the 'originalContext'
}

同样你可以定义你的 ThirdRoute .

现在通过 originalContext ,

Navigator.push(

    context,
    MaterialPageRoute(builder: (originalcontext) => SecondRoute(originalContext:originalcontext)),

  );

编辑 : 原题已编辑

第一种方法: 试试这个:

Navigator.of(context).popUntil((route) => route.isFirst)

把上面的代码放在你的

ThirdRoute()

第二种方法: 把这个放在你的SecondRoute()

Navigator.pushReplacement(context, MaterialPageRoute(builder: (BuildContext context) => ThirdRoute()));

而不是普通的 Navigator.push(...);

然后在你的 ThirdRoute() 上添加这个

Navigator.of(context).pop();