我正在尝试学习 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。有没有办法避免这个问题?