#swiftui #environment #combine #observedobject #environmentobject
Вопрос:
Итак, у меня есть несколько шагов, последний из которых содержит объект EnvironmentObject и объект ObservedObject. Проблема в том, что когда я пытаюсь изменить объект EnvironmentObject (полоса 68), он воссоздает объект ObservedObject. Может ли кто — нибудь объяснить мне, почему это происходит? Любое решение, чтобы сохранить мой объект наблюдения в исходном состоянии?
Насколько я знаю, можно изменить ObservedObject на StateObject, но я использую iOS 13 so… Мне нужно другое решение.
Ответ №1:
Строка 47 — тело переоценено, поэтому создается новый экземпляр ObservedStuff
, поэтому сделайте его свойством и передайте его, например
struct TestView_A: View {
...
private let model = ObservedStuff()
var body: some View {
NavigationLink(destination: TestView_B(viewModel: self.model) ...
}
}
Комментарии:
1. вопрос, но все равно будет оценено, если я уберу if с 47-й полосы и переведу его на 54-ю полосу?
2. Да, конечно, потому
TestView_B
что воссоздан в этом месте.