【问题标题】:Flutter : How to create 'Favorite Item' list in another pageFlutter:如何在另一个页面中创建“最喜欢的项目”列表
【发布时间】:2021-04-18 08:20:09
【问题描述】:

我创建了 ListView.builder 将每个项目(从本地 JSON)导航到其项目的详细页面,我们将其命名为 detailDoaPage.dart 。另外,我创建了另一个页面来显示 detailDoaPage.dart 中的收藏项,名为 favPage.dart 。不幸的是,我不明白如何从 detailDoaPage.dart 中保存收藏的项目并将其显示在 favPage.dart 中。另外,如果我们在我的应用程序中移动到另一个页面,我们收藏的 doa.Fav(返回 doa.fav = true)将恢复为 false。

这是我的应用的预览:

doa.dart(Doa 类)、doa.json、detailDoaPage.dart 和 favPage.dart 可以在这里看到:https://replit.com/join/ypfxwejy-nabilrei(转到第 77 行 detailDoaPage.dart 可以看到收藏夹图标)。你可以修改代码告诉我如何解决这个问题。

非常感谢您的回答。

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    实现此目的的一种简单方法是使用Riverpod。它将让您创建一个favoritesList,可以从任何小部件访问它。看看他们文档中的hello world example

    【讨论】:

    • 嗯,你能告诉我如何实现它吗??
    • 真的很简单。您的实现将类似于此counter example。唯一的区别是不是处理int,而是处理List<String>,其中包含最喜欢的doas 的ID。
    • 你好,我想问你 :) 现在我在我的 favId 中使用 SharedPreferences(存储收藏的 Id 的字符串变量列表。我可以用我的 SharedPreferences 来实现 riverpod 吗?
    • 当然。 SharedPref 主要用于从磁盘保存/加载数据。 Riverpod 可以轻松地与任何需要它的小部件共享这些数据。你想达到什么目的?
    • stackoverflow.com/questions/67194040/… 我在这里问过,但没有人回答我的问题,呵呵 :)
    【解决方案2】:

    因为它是一个模拟项目,所以我将使用它创建其他 JSON 的其他 JSON 项目,并将值添加到 name favorite 的属性,值为 true

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 2013-04-08
      • 1970-01-01
      相关资源
      最近更新 更多