ผมมีมุมมองที่ SwiftUI ที่ใช้เวลาใน EnvironmentObject 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
แต่ฉันต้องการหลีกเลี่ยงถ้าเป็นไปได้