swift - SWIFTUI - OberservableObject 类被设置为 nill 每次调用
问题描述
我正在尝试学习 Swift 和 swiftUI。
我有一个类:在按钮内调用 ObservableObject。
该类获取一些数据,并将其存储在数据变量((字符串:任意)的数组)中
在主视图 VStack 的 onAppear 函数中调用类函数 fetch data。该函数的结果填充一个列表。
一切正常,但每次我回想起视图时,列表都会自行清空。
这里是开课时间
class fetchDataModel: ObservableObject {
@Published var datas:[data] = [data]()
现在数据列表视图:
struct allData: View {
@ObservedObject var datas = fetchDataModel()
var body: some View {
VStack{
NavigationView {
List(datas.data){ data in
NavigationLink(destination: data(data: data)){
HStack{
Text(data.someText)
}
}
}
}
}.navigationBarTitle(Text("Landmarks"))
.onAppear(){
self.datas.fetchData()
}
}
}
我有一个填充motherView的侧面菜单,一旦单击侧面菜单中的按钮,它就会调用datalist()(会话是一个environmentObject)
if session.currentPage == "data" {
myview = AnyView(allDatas())
}
所以我猜,每次我将 myView 设置为 allDatas 时,它都会重新初始化 datas = fetchDataModel() 类,并将其所有值设置为 0。有没有办法避免这个问题?
解决方案
推荐阅读
- ios - 关于在 Swift 中比较数组值后移动索引值的问题
- c# - 以编程方式获取嵌套的静态类名称并访问方法
- karate - 尝试使用 Cucumber JSON 报告运行时,测试用例没有并行运行?
- angular - Angular如何从成功订阅中回退到错误?
- flutter - 我需要一些帮助来验证可以从哪个颤振文档中说明 Center 小部件可以放置在 MaterialApp 主页属性下
- html - VBA获取在线货币
- python - 处理熊猫中带有逗号的值
- python - 从 iq 选项中提取数据
- flask-socketio - 如何加速flask-socketio Emit
- javascript - 根据给定的数据和时间获取时间段