簡體   English   中英

SwiftUI @ObservedObect 查看模型索引超出范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM