我不确定这是否是我们生活在这个勇敢的新SwiftUI世界中的反模式,但是从本质上来说,我有一个@EnvironmentObject,其中保存了一些我的视图可以调用的基本用户信息。
我还有一个@ObservedObject,它拥有此视图所需的一些数据。
当视图出现时,我想使用该@EnvironmentObject初始化@ObservedObject:
struct MyCoolView: View {
@EnvironmentObject userData: UserData
@ObservedObject var viewObject: ViewObject = ViewObject(id: self.userData.UID)
var body: some View {
Text("\(self.viewObject.myCoolProperty)")
}
}
不幸的是,直到初始化后,我才能在环境变量上调用self:
“不能在属性初始化程序中使用实例成员'userData';属性初始化程序在'self'可用之前运行。”
我可以看到一些可能的前进路线,但是它们都像黑客一样。我应该如何处理?
我尝试了一下,但遇到了一个奇怪的错误:
—
snarik '19
Property wrappers are not yet supported on local properties
基本上它说我不能在init方法中创建@ObservedObject。
init
向该结构添加自定义。