我有一个SwiftUI视图,其中包含一个名为的EnvironmentObject appModel。然后,它读取appModel.submodel.count其body方法中的值。我希望这能将我的视图绑定到该属性count,submodel以便在属性更新时重新呈现该属性,但这似乎没有发生。
这是错误吗?如果不是,将视图绑定到SwiftUI中环境对象的嵌套属性的惯用方式是什么?
具体来说,我的模型看起来像这样...
class Submodel: ObservableObject {
@Published var count = 0
}
class AppModel: ObservableObject {
@Published var submodel: Submodel = Submodel()
}
Run Code Online (Sandbox Code Playgroud)
我的观点看起来像这样...
struct ContentView: View {
@EnvironmentObject var appModel: AppModel
var body: some View {
Text("Count: \(appModel.submodel.count)")
.onTapGesture {
self.appModel.submodel.count += 1
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行该应用程序并单击标签时,count属性会增加,但标签不会更新。
我可以通过将appModel.submodel属性作为传入来解决此问题ContentView,但如果可能的话,我想避免这样做。