【发布时间】:2020-12-05 16:11:02
【问题描述】:
使用包装器允许我们将 EnvironmentObject 向下传递到 ObservedObject。不错的方法..
但是如果你想在 ViewObject 中操作 userData 而不是每次都创建一个全新的 ViewObject 怎么办?
在我更改 EnvironmentObject 后,在我的应用程序中重新创建了整个视图,但我不知道如何避免这种情况。
struct MyCoolView: View {
@EnvironmentObject var userData: UserData
var body: some View {
MyCoolInternalView(ViewObject(id: self.userData.UID))
}
}
struct MyCoolInternalView: View {
@EnvironmentObject var userData: UserData
@ObservedObject var viewObject: ViewObject
init(_ viewObject: ViewObject) {
self.viewObject = viewObject
}
var body: some View {
Text("\(self.viewObject.myCoolProperty)")
}
}
【问题讨论】:
标签: swiftui swiftui-environment