Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SwiftUI array.isEmpty在从Firestore收到阵列之前不显示_Swift_Firebase_Google Cloud Firestore_Swiftui - Fatal编程技术网

SwiftUI array.isEmpty在从Firestore收到阵列之前不显示

SwiftUI array.isEmpty在从Firestore收到阵列之前不显示,swift,firebase,google-cloud-firestore,swiftui,Swift,Firebase,Google Cloud Firestore,Swiftui,当前有一个VStack,其中填充了firestore中的项目,如果数据库中没有项目,我将尝试显示一条消息。它工作得非常完美,但在加载项目列表之前,它会显示“No Items”消息。我知道它还没有从db那里得到结果。有没有办法在通话结束之前不展示任何东西 VStack(alignment: .leading){ if itemList.isEmpty { Text(“No items”) } else { ForEach(itemList.indices, id: \.self)

当前有一个VStack,其中填充了firestore中的项目,如果数据库中没有项目,我将尝试显示一条消息。它工作得非常完美,但在加载项目列表之前,它会显示“No Items”消息。我知道它还没有从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() }

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


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

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


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

哦,太棒了,谢谢您,它成功了!哦,太棒了,谢谢你,成功了!