У мене є погляд SwiftUI, який займає середовище, що називається appModel
. Потім він зчитує значення appModel.submodel.count
у своєму body
методі. Я очікую , що це зв'язати мій погляд на власність count
на submodel
так , що вона повторно робить , коли оновлення властивостей, але це , здається, не буває.
Це помилка? А якщо ні, то який ідіоматичний спосіб, щоб перегляди прив'язувались до вкладених властивостей об'єктів навколишнього середовища у SwiftUI?
Зокрема, моя модель виглядає приблизно так ...
class Submodel: ObservableObject {
@Published var count = 0
}
class AppModel: ObservableObject {
@Published var submodel: Submodel = Submodel()
}
І мій погляд виглядає так ...
struct ContentView: View {
@EnvironmentObject var appModel: AppModel
var body: some View {
Text("Count: \(appModel.submodel.count)")
.onTapGesture {
self.appModel.submodel.count += 1
}
}
}
Коли я запускаю додаток і натискаю на мітку, count
властивість збільшується, але мітка не оновлюється.
Я можу це виправити, перейшовши appModel.submodel
як власність до ContentView
, але я хотів би уникати цього, якщо це можливо.