SwiftUI 更改环境对象在同一视图中重新创建观察对象
SwiftUI changing environment object re-created observed object in same view
所以,我有几个步骤,最后一个包含 EnvironmentObject 和 ObservedObject。问题是,当我尝试修改 EnvironmentObject (lane 68) 时,它会重新创建 ObservedObject。
任何人都可以解释为什么会这样吗?有什么办法可以让我的 ObservedObject 保持原始状态?
据我所知,可以将 ObservedObject 更改为 StateObject,但我使用的是 iOS 13+,所以...我需要其他解决方案。
第 47 行 - 正文被重新计算,因此创建了 ObservedStuff
的新实例,因此将其设为 属性 并传入,例如
struct TestView_A: View {
...
private let model = ObservedStuff()
var body: some View {
NavigationLink(destination: TestView_B(viewModel: self.model) ...
}
}
所以,我有几个步骤,最后一个包含 EnvironmentObject 和 ObservedObject。问题是,当我尝试修改 EnvironmentObject (lane 68) 时,它会重新创建 ObservedObject。 任何人都可以解释为什么会这样吗?有什么办法可以让我的 ObservedObject 保持原始状态?
据我所知,可以将 ObservedObject 更改为 StateObject,但我使用的是 iOS 13+,所以...我需要其他解决方案。
第 47 行 - 正文被重新计算,因此创建了 ObservedStuff
的新实例,因此将其设为 属性 并传入,例如
struct TestView_A: View {
...
private let model = ObservedStuff()
var body: some View {
NavigationLink(destination: TestView_B(viewModel: self.model) ...
}
}