相关疑难解决方法(0)

如何告诉SwiftUI视图绑定到嵌套的ObservableObjects

我有一个SwiftUI视图,其中包含一个名为的EnvironmentObject appModel。然后,它读取appModel.submodel.countbody方法中的值。我希望这能将我的视图绑定到该属性countsubmodel以便在属性更新时重新呈现该属性,但这似乎没有发生。

这是错误吗?如果不是,将视图绑定到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,但如果可能的话,我想避免这样做。

ios swift swiftui combine

6
推荐指数
4
解决办法
341
查看次数

标签 统计

combine ×1

ios ×1

swift ×1

swiftui ×1