[英]SwiftUI @ObservedObect View Model Index out of Range
在 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)")
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.