问题描述
我有一个模型,带有一个带有条目数组的“子”模型对象。添加到SubModel
的数组不会更新视图。如果我在视图中初始化subModel
@StateObject属性,那么一切都会按预期进行(请参见示例中的注释代码)。这是有道理的,因为视图知道要跟踪对subModel
的更改。
class Model: ObservableObject {
@Published var entries: [Entry] = []
let subModel = SubModel()
}
class SubModel: ObservableObject {
@Published var entries: [Entry] = []
}
struct ContentView: View {
@StateObject var model: Model
// @StateObject var subModel: SubModel
init() {
let model = Model()
_model = StateObject(wrappedValue: model)
// _subModel = StateObject(wrappedValue: model.subModel)
}
var body: some View {
ScrollView(showsIndicators: false) {
Lazyvstack {
Button("Add") {
model.entries.append(Entry(name: "Test"))
}
ForEach(model.entries) { thing in
Text(thing.name)
}
Divider()
Button("Add") {
model.subModel.entries.append(Entry(name: "Test"))
}
ForEach(model.subModel.entries) { thing in
Text(thing.name)
}
}
}
}
}
struct Entry: Identifiable {
let name: String
let id = UUID()
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)