Я несколько часов бьюсь головой об этом, и я начинаю go сходить с ума. У меня есть представление SwiftUI, определенное так:
struct ExistingClaims: View {
@ObservedObject var viewModel = ExistingClaimsListModel()
@EnvironmentObject var newClaim : NewClaimModel
var body: some View {
NavigationView{
List(viewModel.claims) { dataItem in
NavigationLink(destination: ClaimDetails()){
HStack(spacing: 10){
VStack(alignment: .leading, spacing: 3) {
Text(dataItem.subject)
Text(String(dataItem.caseNumber)).font(.subheadline).italic()
}
}
}
}
// Navigation Bar
.navigationBarTitle(Text("Exisitng Claims"), displayMode: .inline)
// Navigation bar button
.navigationBarItems(
leading: Button("Logout") {
self.viewModel.claims = []
UserAccountManager.shared.logout()
},
trailing: NavigationLink(
destination: NewClaim()) {
Image(systemName: "plus")
}
)
}
.onAppear{
print("On Appear firing for ExistingClaims()")
self.viewModel.fetchDataFromSalesforce()
}
}
}
Все это прекрасно работает. Пока я не попытаюсь добавить предложение .onReceive в список следующим образом:
List(viewModel.claims) { dataItem in
NavigationLink(destination: ClaimDetails()){
HStack(spacing: 10){
VStack(alignment: .leading, spacing: 3) {
Text(dataItem.subject)
Text(String(dataItem.caseNumber)).font(.subheadline).italic()
}
}
}
}.onReceive(self.newClaim.complete){ data in
print(data)
}
Как только я добавлю это onReceive, я получу действительно странную ошибку, показанную на этом снимке экрана:
Есть идеи, что происходит? Моя конечная цель - обновить sh список данных, когда публикуемое свойство объекта окружающей среды (или состояние, которое я пробовал оба) обновляет