在我失去理智之前。可能有人告诉我,为什么它不工作。我已经花了好几个小时来做这件事。ObservedObject只是拒绝更新我的视图
struct ContentView: View {
@ObservedObject var viewModel = ListViewModel()
var body: some View {
NavigationView {
List(){
ForEach(viewModel.items, id:.self) { item in
Text(item)
}
}
.navigationBarTitle("Test List", displayMode: .inline)
.navigationBarItems(
trailing: Button(action: { ListViewModel().addItem()}) { Image(systemName: "info.circle")}.accentColor(.red))
}
}
}
class ListViewModel: ObservableObject, Identifiable {
@Published var items: Array<String> = ["1", "2", "3", "4", "5","6"]
func addItem(){
items.append("7")
}
}
通过在按钮操作中使用初始化器(ListViewModel()
)来创建一个新的ListViewModel。
请参考您在视图中设置的属性:viewModel.addItem()