gpt4 book ai didi

flutter - Flutter/Dart-将上下文转发以将Navigator.pop返回两个上下文?

转载 作者:行者123 更新时间:2023-12-03 04:38:14 24 4
gpt4 key购买 nike

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

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();

关于flutter - Flutter/Dart-将上下文转发以将Navigator.pop返回两个上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63724373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com