【问题标题】:Create new screen or retrieve existing screen?创建新屏幕或检索现有屏幕?
【发布时间】:2019-02-25 00:44:40
【问题描述】:

当我在 Flutter navigator 上工作时,我不知道创建屏幕的正确方法是什么。

例如,我有一个主屏幕和一个产品屏幕。当应用程序加载时,创建主页,然后单击那里的按钮转到产品屏幕,从产品我可以返回主页。

在这种情况下,导航器堆栈中有两个屏幕。如果我转到第三个屏幕,然后单击抽屉列表上的 Products 菜单,它将创建一个新的 Products 屏幕。现在堆栈中有两个产品屏幕。 我的问题是:

  1. 在堆栈中存在同屏的多个实例似乎很正常,对吧?

  2. 在堆栈中始终只保留一个屏幕的一个实例是否是个好主意,是否可行?

  3. 如果我们必须在堆栈中拥有同一屏幕的多个实例,那么只加载一次初始数据不是明智的吗?例如,在这种情况下,将产品列表保存在某个地方并且不要在每次创建新的产品屏幕时从服务器中提取数据是一种好习惯吗?

谢谢

【问题讨论】:

    标签: flutter


    【解决方案1】:

    1, 堆栈中出现同屏多实例似乎很正常吧?

    不,同屏有多个实例是不正常的。

    2,总是在堆栈中只保留一个屏幕的一个实例是个好主意吗?有可能吗?

    是的,push 和 pop 是可能的。 Push 是在堆栈上添加一个新实例,pop 将删除顶部堆栈。返回上一页时最好使用 pop。

    3,如果我们必须在堆栈中有多个相同屏幕的实例,那么只加载一次初始数据不是明智的吗?

    取决于数据。如果它始终是可变的,那么只加载一次是不明智的。如果它在应用程序的整个生命周期中保持不变,请使用共享首选项插件来存储它。如果是常量,最好存储在本地数据库中。

    【讨论】:

      猜你喜欢
      • 2018-09-18
      • 2011-07-10
      • 1970-01-01
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多