簡體   English   中英

如何保存用戶“喜歡”帖子的 state?

[英]how can I save the state of the 'liked' post by the user?

我在 firestore 中有兩個 collections,“用戶”和“帖子”。 主頁是所有帖子都顯示在列表視圖中的地方,每個帖子都有一個“喜歡”按鈕。 我將喜歡的帖子保存在一組final _likedPosts = Set<Posts>(); 在頁面上,但它只是暫時保存喜歡的帖子,一旦應用程序關閉,它就會丟失所有數據。 如何永久保存用戶的 _likedPosts 以便保留數據。 我應該為用戶保留 _likedPosts 做什么樣的查詢? 或者還有其他方法嗎?

這就是 Icon 和 onTap 目前的樣子,

final _likedPosts = _savedPosts.contains(post);

Icon(_likedPosts ? Icons.favorite : Icons.favorite_border,
            color: _likedPosts ? Colors.red : null),
        onTap: () {
          setState(() {
            if (_likedPosts) {
              _savedPosts.remove(post);
            } else {
              _savedPosts.add(post);
            }
          });
        }

您是否正在保存某個用戶的點贊帖子? 然后我建議獲取該帖子(ID)並將其保存到每個用戶的用戶文檔 Liked-Posts 中的數組中。 因為 state 不會持續存在或無法保存,除非您使用外部數據庫。

你必須像 class StatefulWidget 這樣創建這個項目

class MyLikeButton extends StatefulWidget { \\...

並在添加到此項的 state class 后添加“with AutomaticKeepAliveClientMixin”,如下所示:


class _MyLikeButtonState extends State<MyLikeButton> with AutomaticKeepAliveClientMixin {

  @override
  bool get wantKeepAlive => true; \\....

這將使滾動時項目中的更改保持活動狀態,這是你想要的嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM