Saya tidak yakin apakah ini adalah antipattern dalam dunia SwiftUI baru yang berani yang kita tinggali ini, tetapi pada dasarnya saya memiliki @EnvironmentObject dengan beberapa informasi pengguna dasar yang tersimpan di dalamnya sehingga pandangan saya dapat dipanggil.
Saya juga memiliki @ObservedObject yang memiliki beberapa data yang diperlukan untuk tampilan ini.
Ketika tampilan muncul, saya ingin menggunakan @EnvironmentObject untuk menginisialisasi @ObservedObject:
struct MyCoolView: View {
@EnvironmentObject userData: UserData
@ObservedObject var viewObject: ViewObject = ViewObject(id: self.userData.UID)
var body: some View {
Text("\(self.viewObject.myCoolProperty)")
}
}
Sayangnya saya tidak dapat menyebut diri pada variabel lingkungan sampai setelah inisialisasi:
"Tidak dapat menggunakan instance anggota 'userData' dalam inisialisasi properti; inisialisasi properti dijalankan sebelum 'diri' tersedia."
Saya dapat melihat beberapa kemungkinan rute ke depan, tetapi semuanya terasa seperti retasan. Bagaimana saya harus mendekati ini?
Property wrappers are not yet supported on local properties
Pada dasarnya ini mengatakan saya tidak dapat membuat @ObservedObject dengan metode init.
init
ke struct.