@ObservedObject 在更新数组时不会更新
@ObservedObject does not get updated on updating the array
在我为此失去理智之前。有人请告诉我,为什么它不起作用。我已经花了几个小时来尝试完成这项工作。 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()
在我为此失去理智之前。有人请告诉我,为什么它不起作用。我已经花了几个小时来尝试完成这项工作。 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()