मेरे पास एक स्विफ्टयूआई दृश्य है जिसे एक एन्वायर्नमेंट ऑबजेक्ट में लिया जाता है appModel। यह तब appModel.submodel.countइसकी bodyविधि में मूल्य पढ़ता है । मैं उम्मीद करता हूं कि यह मेरे विचार को संपत्ति countपर बांध देगा submodelताकि यह संपत्ति के अद्यतन के समय पुन: प्रतिपादन करे, लेकिन ऐसा होता नहीं दिख रहा है।
क्या यह एक बग है? और यदि नहीं, तो मुहावरेदार तरीका क्या है कि स्विफ्टयूआई में पर्यावरण की वस्तुओं के निहित गुणों के साथ विचार किया जाए?
विशेष रूप से, मेरा मॉडल इस तरह दिखता है ...
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, लेकिन यदि संभव हो तो मैं ऐसा करने से बचना चाहता हूं।