【问题标题】:Flutter Navigation 2 - Reload data on activateFlutter Navigation 2 - 在激活时重新加载数据
【发布时间】:2021-03-16 13:09:24
【问题描述】:

假设我有第 1 页和第 2 页,它们都是使用路由器委托和路由信息解析器加载的。如果您使用后退按钮返回堆栈或单击指向同一路线的链接,您会得到旧页面,就它而言这很好,但问题是几乎总是您真正想要的是重新加载任何更改的数据。

如何将导航与页面本身挂钩,以便当它成为活动页面时,它可以开始从服务器重新加载数据?

【问题讨论】:

    标签: flutter flutter-navigation


    【解决方案1】:

    我解决这个问题的方法是为路由定义一个回调。 例如:

    onTap: () async {
      var response = await Navigator.push(
          context,
          MaterialPageRoute(
              builder: (context) => Page2()));
      if (response == "true") {
          print("hello");
      }
      getData();
    },
    

    我们正在做的是将新路由添加到堆栈并等待响应。一旦你有答案(因为它会弹出)继续执行并调用 void getData ()

    事实上你甚至可以返回值,例如:

     onPressed: () {
         Navigator.pop(context, 'response');
     },
    

    【讨论】:

    • 这在已知的情况下可以正常工作。但是,如果用户像网站一样从导航中跳来跳去,则您无法控制,并且在再次检索路线时不会重新加载。
    猜你喜欢
    • 2011-08-26
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 2021-07-11
    • 2020-03-26
    • 2022-01-02
    相关资源
    最近更新 更多