【问题标题】:SwiftUI array.isEmpty do not show until received array from FirestoreSwiftUI array.isEmpty 在从 Firestore 收到数组之前不显示
【发布时间】:2020-12-19 02:19:05
【问题描述】:

当前有一个 VStack 填充来自 firestore 的项目,如果 db 中没有项目,我会尝试显示一条消息。它工作得很好,但是在加载项目列表之前,它会显示“无项目”消息。我知道它根本还没有从数据库中得到结果。有什么方法可以推迟显示任何内容,直到通话完成?

VStack(alignment: .leading){
if itemList.isEmpty {
    Text(“No items”)
} else {
    ForEach(itemList.indices, id: \.self) { i in
         Text(itemList[I].item)
        }
    }
}
.onAppear() { self.readItems() }

【问题讨论】:

    标签: swift firebase google-cloud-firestore swiftui


    【解决方案1】:

    不,你可以保持渲染直到有数据;这可能需要很长时间。无论应用处于何种状态,您的代码都必须始终呈现某些内容。

    但是您可以设置一个变量来表示数据是否已加载,例如isLoaded,最初将其设置为false,在完成处理程序中将其设置为true,然后使用它来确定要显示的内容.最常见的是,在这种情况下,您将显示单个文本视图 Loading...,然后在 isLoaded 为真后切换到您现在拥有的视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-16
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多