Итак, у меня есть следующая модель представления, где я получаю данные:
import Foundation
import SwiftUI
import Combine
import Alamofire
class AllStatsViewModel: ObservableObject {
@Published var isLoading: Bool = true
@Published var stats = [CountryStats]()
func fetchGlobalStats() {
let request = AF.request("https://projectcovid.deadpool.wtf/all")
request.responseDecodable(of: AllCountryStats.self) { (response) in
guard let globalStats = response.value else { return }
DispatchQueue.main.async {
self.stats = globalStats.data
}
self.isLoading = false
}
}
}
И это представление:
struct CardView: View {
@ObservedObject var allStatsVM = AllStatsViewModel()
var body: some View {
VStack {
Text(self.allStatsVM.stats[0].country)
}
.onAppear {
self.allStatsVM.fetchGlobalStats()
}
}
}
Я хотел бы получить доступ только к первому элемент данных, но проблема, с которой я сталкиваюсь, заключается в том, что при загрузке представления данные не загружаются, поэтому я получаю индекс вне диапазона ошибок при
Text(self.allStatsVM.stats[0].country)
Есть ли способ, я могу получить доступ первый элемент?