ContentView().environmentObject
是的,这两者是配套使用的。
ContentView().environmentObject(productsModel)
:这里的environmentObject(productsModel)
是将一个ProductsModel
的实例作为环境对象传递给视图树中的所有子视图。它通过environmentObject
方法来共享数据,使得这个对象可以在子视图中被访问。@EnvironmentObject var productsModel: ProductsModel
:这里的@EnvironmentObject
属性包装器用于声明这个视图依赖于某个环境对象,表示这个视图需要从父视图或视图树中获得一个类型为ProductsModel
的共享实例。
这两者的关系是:你在父视图或某个视图中用 .environmentObject()
提供了一个对象实例,然后子视图通过 @EnvironmentObject
获取这个对象。这使得视图能够共享和依赖同一个模型数据。
总结:.environmentObject(productsModel)
是设置环境对象,@EnvironmentObject
是使用这个环境对象。
从父视图传递到子视图, 类似React中的一个好像叫做React.createContext()
Last updated