gpt4 book ai didi

dart - Flutter Navigator.of(context).pop 与 Navigator.pop(context) 区别

转载 作者:IT王子 更新时间:2023-10-29 06:39:33 30 4
gpt4 key购买 nike

Navigator.of(context).popNavigator.pop(context) 有什么区别?

对我来说两者似乎都在做同样的工作,实际的区别是什么。一个被弃用了吗?

最佳答案

Navigator.push(context, route) 与 Navigator.of(context).push(route)

Navigator 用于管理应用程序的页面堆栈(路由)。当把给定的路由推送到屏幕上时(Navigator),我们需要获取正确的Navigator然后推送。

Navigator.of(context).push(route) 拆分 .of(context) 以获得正确的 Navigator 和 .push(route)Navigator.of(context) 有可选参数,如果 rootNavigator 设置为 true,则给出距离最远的 NavigatorState。

  static NavigatorState of(
BuildContext context, {
bool rootNavigator = false,
bool nullOk = false,
})

Navigator.push(context, route) 是一个静态方法,同时执行这两个操作。它在内部调用 Navigator.of(context).push(route)。导航器最紧密地包含给定的上下文。

static Future<T> push<T extends Object>(BuildContext context, Route<T> route) {
return Navigator.of(context).push(route);
}

pop() 类似于push()

当App中嵌套了多个Navigator时。 showDialog(...) 方法创建的对话路由被推送到根导航器。如果应用程序有多个 Navigator 对象,可能需要调用 Navigator.of(context, rootNavigator: true).pop(result) 来关闭对话框,而不仅仅是 Navigator.pop(上下文,结果)

关于dart - Flutter Navigator.of(context).pop 与 Navigator.pop(context) 区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55548153/

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