我无法在 SwiftUI 中使用 foreach 展示我的视图

问题描述

我尝试像数组中的项目一样频繁地呈现视图结构。我想使用 for-each,因为我不喜欢 UIList 视图。顺便说一句,我正在使用 SwiftUI。我从 firebase-firestore 生成了我想使用的数组。

这是我生成数组的方法

class viewmodellForItems: ObservableObject{
    @Published var listItemsEnglisch = [MaterialItemClass]()
    
    let myDataBase = Firestore.firestore()

    let Ordner = Firestore.firestore().collection("Censored")
    
    func updateData(){
        Ordner.addSnapshotListener { (querySnapshot,error) in
            guard let documents = querySnapshot?.documents else {
                print("Ordner wurde nicht gefunden")
                return
            }
            self.listItemsMathe = documents.map { (queryDocumentSnapshot) -> MaterialItemClass in
                
                let data = queryDocumentSnapshot.data()
                
                let Name = data["Name"] as? String ?? ""
                let beschreibung = data["beschreibung"] as? String ?? ""
                let anzahlDesProduktes = data["anzahlDesProduktes"] as? Int ?? 0
                let bildName = data["bildName"] as? String ?? ""
                let hintergrundFarbe = data["hintergrundFarbe"] as? String ?? ""
                
                let item = MaterialItemClass(Name: Name,beschreibung: beschreibung,anzahlDesProduktes: anzahlDesProduktes,bildName: bildName,hintergrundFarbe: hintergrundFarbe)
                return item
                
            }
            
        }
    }
}

这是我在 viewmodellForItems 类中使用的结构:

   struct MaterialItemClass {
        var Name: String
        var beschreibung: String
        var anzahlDesProduktes: Int
        var bildName: String
        var hintergrundFarbe: String
    }

这是我的 ContendView.swift 文件

struct ContendView: View {
    
    
    @Observedobject private var viewmodel = viewmodellForItems()
    
    var body: some View {
        
        ForEach(0 ..< viewmodel.listItemsEnglisch.count,id: \.self) {
            
            Text(viewmodel.listItemsEnglisch[$0].Name)
          
                }.onAppear(){
                    self.viewmodel.updateData()
                }        
                Text("Debug")
                
    }
}

我只看到调试文本...我做错了什么?并进一步;我怎样才能为这个数组的每个元素呈现一个完整的视图结构?

只想说,firebase 没有失败,因为如果我在列表视图中运行几乎相同的代码,一切都正常......

解决方法

好吧,伙计们,我弄错了, 如果我只在每个块的 .onAppear 方法中更新我的数组,它就不会更新,因为 for-each 块永远不会出现。 谢谢你的时间 展位