【问题标题】:swiftui list doens't appear but array isn't emptyswiftui列表没有出现但数组不为空
【发布时间】:2021-03-22 20:26:33
【问题描述】:

我正在处理一个从 Firebase 加载数据的 Swiftui 文件。 它确实有效,但是当我添加东西时它突然停止工作...... 我试图将它剥离,但我无法让它再次工作。 有谁知道我做错了什么?

import SwiftUI
import Firebase

struct Fav: View {
@StateObject var loader = Loader()

var body: some View {
    ScrollView {
        if loader.userfav.count != 0 {
            List (loader.userfav, id: \.id) { fav in
                Text(fav.name.capitalized)
            }
        }
        else
        {
            Text("You haven't added favorits yet...")
        }
    }
    .onAppear{
        loader.loadfav(loadfavorits: "asd")
    }
    .navigationBarTitle("")
    .navigationBarHidden(true)
    .navigationBarBackButtonHidden(true)
}
func deletefav (docid: String) {
    print(docid)
}
}
struct Fav_Previews: PreviewProvider {
    static var previews: some View {
        Fav()
    }
 }

和加载器文件

import Foundation
import Firebase
import FirebaseFirestore


class Loader : ObservableObject {
     private var db = Firestore.firestore()
     @Published var userfav = [fav]()

        func loadfav (loadfavorits: String) {
    userfav = [fav]()
    
    db.collection("favo").whereField("user", isEqualTo: loadfavorits).getDocuments() { (querySnapshot, err) in
        if let err = err {
            print("Error getting favorits: \(err.localizedDescription)")
        }
        else
        {
            for fav in querySnapshot!.documents {
                let brand = fav.get("brand") as! String
                let store = fav.get("store") as! String
                let name = fav.get("name") as! String
                let type = fav.get("type") as! String
                let docid = fav.get("docid") as! String
            
                self.userfav.append(fav(brand: brand, store: store, name: name, type: type, docid: docid))
            }
        }
    }
}
}

它不显示文本(“你还没有添加收藏夹......”) 所以这意味着 dat loader.userfav.count 不为空

【问题讨论】:

  • 可能是冗余 ScollView 的结果。列表已经滚动——不应该在另一个滚动视图中。
  • 解决了问题!!谢谢!

标签: list firebase swiftui


【解决方案1】:

将List 嵌入ScrollView(也可以滚动)可能会导致布局问题。去掉外面的ScrollView,问题就解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多