【问题标题】:Flutter : List item's data lost after navigating to another pageFlutter:导航到另一个页面后列表项的数据丢失
【发布时间】:2021-04-20 12:15:13
【问题描述】:

我在 detailDoaPage.dart 中创建了List<String> favId = [];,并在点击收藏图标时添加了 doa.id。

onPressed: () => setState(() {
                      doa.fav = !doa.fav;
                      doa.fav
                          ? favId.removeWhere(
                              (element) => element == doa.id.toString())
                          : favId.add(doa.id.toString());
                    }),

但是,当我将应用导航到另一个页面并重新打开 detailDoaPage.dart 时,favId 的列表数据将会丢失。这是我的应用程序的预览:

即使我移动到另一个页面,我如何才能保留 favId 的列表数据? 谢谢你:)

这是我的完整代码:https://replit.com/join/xsppzeez-nabilrei 请随时编辑我的代码并帮助我解决这个问题

【问题讨论】:

  • 如果您希望数据保持持久性,即使在应用程序关闭时也可以使用 sharedPreferences 存储数据。
  • @lrsvmb 如何在我们重新打开应用时自动使用 SharedPreferences?
  • 查看这个包,那里的一切都得到了很好的解释; pub.dev/packages/shared_preferences
  • @BillRei 你是怎么解决的?

标签: flutter dart


【解决方案1】:

当页面关闭时,除了声明为静态变量的那些之外,肯定会丢失所有页面的变量。 您在定义列表时是否尝试过使用静态语义

static List<String> favId = [];

【讨论】:

  • 我尝试使用声明的favId 作为静态变量,但数据仍然丢失:(
【解决方案2】:

列表 favId = [];此类型变量创建 App 全局。

屏幕打开以检查 intstate 方法。

如果(favId.containes(doa.id){ 喜欢表演。 删除喜欢。 } 别的 { 喜欢不显示。 添加喜欢。 }

【讨论】:

    猜你喜欢
    • 2017-10-30
    • 2020-09-02
    • 2020-12-20
    • 2020-08-06
    • 1970-01-01
    • 2021-09-11
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多