Não tenho certeza se esse é um antipadrão neste admirável mundo SwiftUI em que vivemos, mas basicamente tenho um @EnvironmentObject com algumas informações básicas do usuário salvas, que meus pontos de vista podem chamar.
Eu também tenho um @ObservedObject que possui alguns dados necessários para esta exibição.
Quando a exibição aparecer, desejo usar esse @EnvironmentObject para inicializar o @ObservedObject:
struct MyCoolView: View {
@EnvironmentObject userData: UserData
@ObservedObject var viewObject: ViewObject = ViewObject(id: self.userData.UID)
var body: some View {
Text("\(self.viewObject.myCoolProperty)")
}
}
Infelizmente, não consigo chamar a variável de ambiente até depois da inicialização:
"Não é possível usar o membro da instância 'userData' no inicializador de propriedades; os inicializadores de propriedades são executados antes que 'self' esteja disponível."
Eu posso ver algumas rotas possíveis adiante, mas todas elas se parecem com hacks. Como devo abordar isso?
Property wrappers are not yet supported on local properties
Basicamente, estou dizendo que não posso criar um @ObservedObject em um método init.
init
à estrutura.