【问题标题】:Save dismissible state保存可关闭状态
【发布时间】:2018-07-27 08:18:54
【问题描述】:

如何保存可解雇的状态?当项目被关闭时,它会在关闭和打开应用程序时保持关闭?

我对 Flutter 比较陌生,并检查了保存的首选项插件,但无法让它工作。

【问题讨论】:

  • 您的Dismissible 项目列表是如何创建的;数据源是什么?在onDismissed 处理程序中,您需要更新该数据源以删除已关闭的项目并再次保留它,以便下一次应用程序加载使用减少的数据集。如果你能展示一些代码,我可以给你更多的指导:)
  • @DerekLakin 那将是完美的,我现在似乎在 dart 的 UI 方面还可以,但在功能方面有点挣扎。我将在本周末晚些时候或下周有机会时编写一些代码,但我使用 SliverChildBuilderDelgate 和可解雇的孩子,并且信息来自列表字符串,所以没有什么比我需要的基本信息太花哨的了。我有一个 SetState 来删除该项目,但无法让它持续存在。
  • List<String> 与您的小部件相关的位置以及它是如何声明的?请记住,每次状态更改时都会调用 build 方法,因此如果您的列表是 build 方法的本地列表,它将以与第一次相同的方式重新创建(抱歉,如果我说的很明显)。
  • @DerekLakin 这更能说明我为什么要重新创建这个问题!将数据添加到可驳回以使其数据保持驳回状态的最佳方法是什么?我一直在兜圈子,有什么例子吗? :)

标签: dart flutter state dismissible


【解决方案1】:

您需要一些方法来在启动之间保持和恢复应用程序的状态。 Flutter 中一个常见的解决方案是使用Redux,这是一种用于管理状态的单向数据流架构。这个来自 Xavi Rigau 的blog post 是一个很好的介绍。 GitHub repository 中有一个示例应用,它扩展了默认计数器示例应用以使用 redux。

为了在应用启动之间保持状态,您需要添加持久层。一种选择是使用您自己的文件存储中间件(请参阅 Xavi 的帖子和 flutter_redux 存储库中的示例)。另一种方法是使用 Flutter redux_persist 库(我还没有使用过这个)。

注意:鉴于所涉及的复杂性和细节,我没有在此处包含代码示例,但列出的参考资料中有很多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    相关资源
    最近更新 更多