swift - 数据在数组中出现两次 - Swift(SwiftUI)
问题描述
class DataHandler: ObservableObject{
@Published var HomePagePosts = [Post]()
@Published var loggedInUser = UserObject()
init() {
self.loadHomePagePosts()
}
func loadHomePagePosts(){
let ref = Database.database().reference()
ref.child("Posts").observe(.value) { post in
for entry in post.children.allObjects as! [DataSnapshot] {
guard let dict = entry.value as? [String: AnyObject] else {return}
self.HomePagePosts.append(handlePostDictionary(dict))
self.HomePagePosts.sort(by: {$0.date!.compare($1.date!) == .orderedDescending})
}
}
}
下面是我的主页加载帖子的代码
@ObservedObject var dataHandler: DataHandler
ForEach(self.dataHandler.HomePagePosts, id: \.id, content:{
post in
EntryCell(currentPost: post)
})
这是我的主要数据处理程序。本质上,问题是如果我在firebase上发布到我的服务器,然后我转到我的主页,它将重新渲染帖子并将其添加到帖子数组(HomePagePosts)中,复制除新帖子之外的所有帖子。我尝试在函数开始时将数组设为空白,但现在单击主页时只能看到一篇文章。非常感谢您花时间阅读问题,有什么建议吗?
解决方案
推荐阅读
- ruby-on-rails - Ruby on Rails - Stripe::CardError 未捕获被阻止的付款
- python - 使用 Python 和 Tkinter 与其他按钮的中断方法
- sql - 没有交叉表的 Postgres 枢轴
- python - Howto Python Push websocket 客户端,教程?尝试 pusher 没有成功(不完整的例子?)
- php - PHP多张图片只上传第一张图片
- android - Kotlin - 闪烁文本的最简单方法(可见/不可见)
- python - Beautiful Soup - 使用 find_all 从多个网页中提取文本
- javascript - (GDrive API)用户无需登录即可下载文件需要访问令牌
- javascript - ES 模块何时可以导入名为 export 的 CommonJS?
- excel - 带日期的 Excel 通配符