【问题标题】:Flutter Navigation: Fetching the previous RouteFlutter Navigation:获取上一条路线
【发布时间】:2019-04-11 17:07:57
【问题描述】:

最近出于兴趣一直在做一些flutter开发,偶然发现了flutter navigator。我使用的是默认样式方式,所以没有使用路由库(只是 Navigator.push/pop),但是我希望能够获取当前路由的前一个路由(换句话说,获取初始化和调用的路由当前的。

目前,我在每个 Route 中都有一个 final 字段,我可以在其中识别调用者,但是这是一种非常糟糕的方法,而且不切实际,尤其是在我编写类时。

知道如何实现这一点吗?谢谢

【问题讨论】:

  • 所以你想得到他父母的Route对象?
  • 如果你的意思是父类,已经调用或导航到新路由的类,那么是的,我想得到它。我之所以问这个问题,是因为我有一个通用屏幕,可以在应用程序的生命周期中的不同情况下使用。根据这个屏幕的调用者,它必须调用其他屏幕。
  • 将您自己的监听器添加到observers 属性怎么样?
  • 或者docs.flutter.io/flutter/widgets/RouteAware-class.html(我不知道如何使用它,因为我在 30 秒前“找到”了它......)?
  • 我实际上正在阅读它,我也从未使用过它,也不需要它。有趣的是,在 Flutter Repo 中有一张公开的票,关于类似的事情。

标签: dart flutter


【解决方案1】:

根据我对您提到的用例的理解,您似乎希望在应用导航到通用屏幕时获取上一个 Route。在这个通用屏幕中,它检查它来自的路由以调用其他屏幕。

Navigator 2.0 应该能够满足这个用例。我建议在 Navigator 构造函数中使用 pages 参数。这应该有助于在选项卡中保留Page 对象的列表,并能够根据需要更新屏幕。这个blog post 有一个完整的示例供您试用。

【讨论】:

    猜你喜欢
    • 2020-02-13
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多