Ben adlandırılan bir EnvironmentObject alır bir SwiftUI görünüm var appModel. Daha sonra değerini okur appModel.submodel.countonun içinde bodyyöntemle. Ben özellik güncellemeleri zaman yeniden oluşturur count, submodelböylece bu özelliği görünümüne bağlamak için bekliyoruz , ama bu gerçekleşmiyor gibi görünüyor.
Bu bir hata mı? Ve değilse, görünümlerin SwiftUI'deki ortam nesnelerinin iç içe özelliklerine bağlanmasının deyimsel yolu nedir?
Özellikle, modelim şöyle görünüyor ...
class Submodel: ObservableObject {
@Published var count = 0
}
class AppModel: ObservableObject {
@Published var submodel: Submodel = Submodel()
}
Benim görüşüm şöyle ...
struct ContentView: View {
@EnvironmentObject var appModel: AppModel
var body: some View {
Text("Count: \(appModel.submodel.count)")
.onTapGesture {
self.appModel.submodel.count += 1
}
}
}
Uygulamayı çalıştırıp etikete tıkladığımda countözellik artar, ancak etiket güncellenmez.
Bunu appModel.submodelbir özellik olarak geçirerek düzeltebilirim ContentView, ancak mümkünse bunu yapmaktan kaçınmak istiyorum.