【问题标题】:Flutter get current route name, of Navigator, from GlobalKeyFlutter 从 GlobalKey 获取 Navigator 的当前路由名称
【发布时间】:2021-03-29 19:50:38
【问题描述】:

在我的 Flutter 应用程序中,我需要知道当前路径以避免两次推送同一路径。

我发现我可以使用以下代码:

    ModalRoute.of(context).settings.name

它有效,但仅适用于主导航器。

由于我的应用中有第二个导航器,我使用 GlobalKey 作为目标,我如何访问它的当前路径?

我试过这样:

ModalRoute.of(HomePage.navigatorKey.currentContext).settings.name

但它返回主路由。

【问题讨论】:

  • 您能否详细介绍一下您决定使用第二个导航器的原因以及您是如何使用它的?
  • 我在另一个小部件中使用它来执行子导航。我认为不需要其他上下文。我只需要知道如何访问我知道 GlobalKey 的 Navigator 的当前路由。
  • @L.Gangemi 你有没有找到解决办法?
  • 我不记得找到解决方案。我建议你看看一些像这样的路由包:pub.dev/packages/routemaster

标签: flutter navigator


【解决方案1】:

不知道你是否还需要它,但这是我解决问题的方法。

String route = "";
HomePage.navigatorKey.currentContext!.popUntil((currentRoute) {
  route = currentRoute.settings.name;
  // Return true so popUntil() pops nothing.
  return true;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 2016-05-09
    • 2018-07-05
    • 2017-11-28
    • 2015-09-14
    • 1970-01-01
    • 2021-03-16
    相关资源
    最近更新 更多