在从Firestore收到阵列之前,SwiftUI的array.isEmpty属性不会显示。这是因为SwiftUI的视图是根据数据的变化来自动更新的,而Firestore的数据获取是异步的过程。当视图加载时,Firestore可能还没有返回数据,因此array.isEmpty属性仍然为true,直到数据返回并更新数组后,视图才会重新渲染。
为了解决这个问题,可以使用SwiftUI的@State属性包装数组,并在数据返回后手动更新该属性。具体步骤如下:
.onAppear {
FirestoreService.getData { result in
switch result {
case .success(let data):
self.dataArray = data
case .failure(let error):
print("获取数据失败:\(error)")
}
}
}
在这个例子中,FirestoreService是一个自定义的服务类,其中的getData方法用于从Firestore获取数据。获取到数据后,通过更新dataArray属性来触发视图的重新渲染。
需要注意的是,这只是一个示例,实际情况中可能需要根据具体的业务逻辑进行相应的修改和调整。
推荐的腾讯云相关产品:腾讯云云数据库CDB、腾讯云云函数SCF、腾讯云云存储COS等。您可以通过访问腾讯云官方网站获取更多关于这些产品的详细信息和介绍。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云