代码之家  ›  专栏  ›  技术社区  ›  Duck

有没有一种方法可以使用environmentObject传递数组

  •  0
  • Duck  · 技术社区  · 2 年前

    我有一个数组 MyItem

    var array:[MyItem]
    

    我本以为会失败,但我已经试着通过了 array 使用

    .environmentObject(array)
    

    显然它失败了。

    实例方法“environmentObject”要求“[MyItems]”符合“ObservableObject”

    有办法做到这一点吗?

    1 回复  |  直到 2 年前
        1
  •  1
  •   sonle    2 年前

    将数组封装在符合类的ObservableObject中,然后可以正常传递它

    final class ModelData: ObservableObject {
        ....
        //Add @Published to enable binding to any views using this property
        @Published var array: [MyItem] = []
    }
    
    @StateObject private var modelData = ModelData()
    
    var body: some Scene {
        WindowGroup {
            ContentView()
                .environmentObject(modelData)
        }
    }