![](/img/trans.png)
[英]QBChatDialog data is not persistent. How do I make QBChatDialog data persistent?
[英]How do I make the data persistent in SwiftUI?
所以,这是我的观点 Model
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 {
if self.allStatsVM.stats.count > 0 {
Text(self.allStatsVM.stats[0].country)
} else {
Text("data loading")
}
}
.onAppear {
self.allStatsVM.fetchGlobalStats()
}
}
}
所以,当我第一次打开应用程序时,我得到了数据,然后当我 go 回家并重新打开应用程序时,我只能看到数据加载。
有没有办法持久化数据? 我知道@State 有帮助,但我是 SwiftUI 的初学者,不知道它是如何工作的
每次打开 CardView 时都会创建一个新的:
@ObservedObject var allStatsVM = AllStatsViewModel()
您可能想要的是在主视图中创建它,并将 ObservedObject 从主视图传递到 CarView,您在其中声明:
@ObservedObject var allStatsVM: AllStatsViewModel
然后数据将持续存在,当 CardView 再次出现时,它将显示它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.