Я пытаюсь изучить Swift и swiftUI.
У меня есть класс: ObservableObject, вызываемый кнопкой.
класс извлекает некоторые данные и сохраняет их в data var ( массив из (string: any))
данные выборки функции класса вызываются внутри функции onAppear в главном представлении VStack. результаты функции заполняют список.
все работает нормально, но каждый раз, когда я вспоминаю представление, список опустошается.
здесь открытие класса
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 () ( session - это environmentObject)
if session.currentPage == "data" {
myview = AnyView(allDatas())
}
Итак, я думаю, каждый раз, когда я устанавливаю myView на allDatas, он повторно инициализирует класс datas = fetchDataModel () и устанавливает все его значения в 0. Есть ли способ избежать эта проблема?