Eu tenho uma visualização SwiftUI que utiliza um EnvironmentObject chamado appModel
. Em seguida, ele lê o valor appModel.submodel.count
em seu body
método. Espero que este se ligar meu ponto de vista para a propriedade count
de submodel
modo que ele processa novamente quando as atualizações de propriedade, mas isso não parece acontecer.
Isso é um inseto? E se não, qual é a maneira idiomática de vincular exibições a propriedades aninhadas de objetos de ambiente no SwiftUI?
Especificamente, meu modelo fica assim ...
class Submodel: ObservableObject {
@Published var count = 0
}
class AppModel: ObservableObject {
@Published var submodel: Submodel = Submodel()
}
E minha visão é assim ...
struct ContentView: View {
@EnvironmentObject var appModel: AppModel
var body: some View {
Text("Count: \(appModel.submodel.count)")
.onTapGesture {
self.appModel.submodel.count += 1
}
}
}
Quando executo o aplicativo e clico no rótulo, a count
propriedade aumenta, mas o rótulo não é atualizado.
Eu posso consertar isso passando appModel.submodel
como uma propriedade para ContentView
, mas gostaria de evitar fazer isso, se possível.