swiftui列表没有出现但数组不为空
Posted
技术标签:
【中文标题】swiftui列表没有出现但数组不为空【英文标题】:swiftui list doens't appear but array isn't empty 【发布时间】: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 的结果。列表已经滚动——不应该在另一个滚动视图中。 解决了问题!!谢谢! 【参考方案1】:将List
嵌入ScrollView
(也可以滚动)可能会导致布局问题。去掉外面的ScrollView
,问题就解决了。
【讨论】:
以上是关于swiftui列表没有出现但数组不为空的主要内容,如果未能解决你的问题,请参考以下文章