Ben adlandırılan bir EnvironmentObject alır bir SwiftUI görünüm var appModel
. Daha sonra değerini okur appModel.submodel.count
onun içinde body
yöntemle. Ben özellik güncellemeleri zaman yeniden oluşturur count
, submodel
bö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.submodel
bir özellik olarak geçirerek düzeltebilirim ContentView
, ancak mümkünse bunu yapmaktan kaçınmak istiyorum.