Что у меня есть: View и ViewModel (как расширение структуры View).
Оба они используют @EnvironmentObject типа AppState.
Проблема в том, что мой предварительный просмотр падает из-за этой ошибки:
Fatal error: No ObservableObject of type AppState found
.
Комментирование строк в loadUser
fun c спасает от cra sh.
struct ProfileView: View {
@EnvironmentObject var appState: AppState
@ObservedObject var viewModel = ViewModel()
...
}
extension ProfileView {
class ViewModel: ObservableObject {
@EnvironmentObject var appState: AppState
@Published var userVM = UserVM(.example)
init() {
loadUser()
}
func loadUser() {
User.WebService.getSelf { user, errorMsg in
DispatchQueue.main.async {
guard let user = user else {
/*self.appState.showingAlert = true
self.appState.alert = Alert(
title: Text("An error occured!"),
message: Text(errorMsg ?? "unknown error"))*/
return
}
self.userVM = UserVM(user)
}
}
}
}
}
struct ProfileView_Previews: PreviewProvider {
static let viewModel = ProfileView.ViewModel()
static var previews: some View {
let appState = AppState()
appState.activeScreen = .profile
return ProfileView()
.environmentObject(appState)
}
}