SwiftUI@ObservedObect视图模型索引超出范围



在Swift中,我有一个连接到FireStore的viewModel,当我调用它的函数fetchData时,它成功地返回了许多文档。但是,当我尝试使用索引引用文档时,会出现"超出范围"错误。

在这个例子中,文档数返回为1,所以我看不出为什么下一个Text语句不起作用。可能是时间问题吗?意思是,文件在那一刻实际上是可用的。

@ObservedObject var testViewModel = GetTestViewModel()
var body: some View {

VStack {
Text("Number of tests = (testViewModel.test.count)") // Returns 1
Text("Test Level = (testViewModel.test[0].level)")
// Allways crashes with Fatal error: Index out of range

}
.onAppear() {
// This should and does return one record
testViewModel.fetchdata(testId: "4Yv7iT2BjHCKNzr4umpG")
LoadNewTest()

}
}
func LoadNewTest() {
print("Load Test")
if !testViewModel.test.isEmpty {
print("Number of tests = (testViewModel.test.count)") // Never prints
}

}

count为零时,您可能看不到对body的第一个请求,因此最好显式添加条件,如

VStack {
Text("Number of tests = (testViewModel.test.count)") // Returns 1
if !testViewModel.test.isEmpty {
Text("Test Level = (testViewModel.test[0].level)")
}
}

相关内容

  • 没有找到相关文章

最新更新