Ios 如何在SwiftUI的视图中正确过滤和迭代
我使用的是Swift 5,有一个结构模型(图书:userId、category、title),它通过Repository类存储在Firedbase中,并通过图书列表视图(使用图书单元子视图)访问 BookList和Book Cell都有视图模型,我通过观察对象访问视图中的所有数据并从VM发布 在最简单的形式中,在VM的init上,我调用存储库并获取某个用户ID的所有书籍,这很好 我的目标是能够显示每个图书类别的分区/旋转木马。这就是我摔倒的地方,我被完全卡住了(我相信这也很简单,令人沮丧:)Ios 如何在SwiftUI的视图中正确过滤和迭代,ios,swift,swiftui,swift5,Ios,Swift,Swiftui,Swift5,我使用的是Swift 5,有一个结构模型(图书:userId、category、title),它通过Repository类存储在Firedbase中,并通过图书列表视图(使用图书单元子视图)访问 BookList和Book Cell都有视图模型,我通过观察对象访问视图中的所有数据并从VM发布 在最简单的形式中,在VM的init上,我调用存储库并获取某个用户ID的所有书籍,这很好 我的目标是能够显示每个图书类别的分区/旋转木马。这就是我摔倒的地方,我被完全卡住了(我相信这也很简单,令人沮丧:) f
希望一切都有意义,感谢您的帮助和指导!过滤不是您视图的工作,而是您视图模型的工作。向
BookListView提供过滤列表,是的,这是我最初采取的路线,我试图将自定义词典传递给视图,但我无法在vi中迭代ew也是,所以我有点不知所措?谢谢@Paulw11,update,我已经切换到传递一个自定义结构,这是可行的-仍然不知道为什么我不能在视图中过滤数组。。。
struct BookListView: View {
@ObservedObject var bookListVM = BookListViewModel()
var body: some View {
...
// this doesn't work
ForEach(bookListVM.bookCellViewModels.filter {$0.book.category == "XYZ TEST"}) { example in
let _ = print("DEBUG: \(example.book.heading)")
}
// this does
ForEach(bookListVM.bookCellViewModels) { bookcellVM in
...
}