【发布时间】: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 的结果。列表已经滚动——不应该在另一个滚动视图中。
-
解决了问题!!谢谢!