Non sono sicuro che si tratti di un antipasto in questo nuovo mondo coraggioso di SwiftUI in cui viviamo, ma essenzialmente ho un @EnvironmentObject con alcune informazioni utente di base salvate in esso che le mie opinioni possono chiamare.
Ho anche un @ObservedObject che possiede alcuni dati richiesti per questa vista.
Quando appare la vista, voglio usare @EnvironmentObject per inizializzare @ObservedObject:
struct MyCoolView: View {
@EnvironmentObject userData: UserData
@ObservedObject var viewObject: ViewObject = ViewObject(id: self.userData.UID)
var body: some View {
Text("\(self.viewObject.myCoolProperty)")
}
}
Sfortunatamente non posso chiamare self sulla variabile d'ambiente fino a dopo l'inizializzazione:
"Impossibile utilizzare il membro di istanza 'userData' all'interno dell'inizializzatore di proprietà; gli inizializzatori di proprietà vengono eseguiti prima che sia disponibile 'self'."
Vedo alcuni possibili percorsi in avanti, ma sembrano tutti degli hack. Come dovrei avvicinarmi a questo?
Property wrappers are not yet supported on local properties
riscontrato un errore un po 'strano: sostanzialmente dice che non posso creare un oggetto @ObservedOb in un metodo init.
init
alla struttura.