如何保存用户"赞"帖子的状态?



我在firestore中有两个集合,"用户"和"帖子"。主页是所有帖子显示在列表视图中的地方,每个帖子都有一个"喜欢"按钮。我正在将喜欢的帖子保存在页面上的一组final _likedPosts = Set<Posts>();中,但它只是暂时保存喜欢的帖子,一旦应用程序关闭,它就会丢失所有数据。如何永久保存用户的_likedPosts以便保留数据。我应该为用户进行什么查询以保留_likedPosts?还是有其他方法

?这就是图标和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(并将其保存到用户文档中的数组中 每个用户的喜欢帖子.因为状态不会持久化或无法保存,除非您使用外部数据库。

你必须像 class StatefulWidget 一样创建这个项目

class MyLikeButton extends StatefulWidget { \...

并在添加到该项目的状态类后添加"与AutomaticKeepAliveClientMixin",如下所示:


class _MyLikeButtonState extends State<MyLikeButton> with AutomaticKeepAliveClientMixin {
@override
bool get wantKeepAlive => true; \....

这将使滚动时项目的变化保持活力,您想要吗?

最新更新