弹出时,为什么需要在flutter中将上下文传递给Navigator?

弹出时,为什么需要在flutter中将上下文传递给Navigator?,flutter,reactive-programming,flutter-layout,Flutter,Reactive Programming,Flutter Layout,由于Flatter使用堆栈来管理可通过Navigator类访问的屏幕,因此我对它有以下理解: 当我们使用Navigator.push(context,…):这里使用context,以便它知道应该在哪个其他小部件的顶部推送新屏幕 我不明白的是为什么它需要一个上下文来弹出一个屏幕 难道它不能简单地弹出堆栈最上面的屏幕,然后显示下面的屏幕吗 上下文在这里的作用到底是什么以及在推送和弹出时上下文的作用有何区别推送和弹出的原因是相同的-找到导航器 查看.pop,您会发现它是一个静态的、方便的函数,可以:

由于Flatter使用堆栈来管理可通过Navigator类访问的屏幕,因此我对它有以下理解:

当我们使用Navigator.push(
context
,…):这里使用
context
,以便它知道应该在哪个其他小部件的顶部推送新屏幕

我不明白的是为什么它需要一个上下文来弹出一个屏幕

难道它不能简单地弹出堆栈最上面的屏幕,然后显示下面的屏幕吗


上下文在这里的作用到底是什么
以及在
推送
弹出
时上下文的作用有何区别
推送
弹出
的原因是相同的-找到
导航器

查看
.pop
,您会发现它是一个静态的、方便的函数,可以:

  return Navigator.of(context).pop<T>(result);
总之,您可以传递上下文,以便可以使用
context.findAncestor…
查找要调用该方法的导航器。

尝试在
navigator上“Ctrl+左键单击”。按下(…)
方法?
 context.findAncestorStateOfType()