@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()