ฉันไม่แน่ใจว่านี่เป็นปฏิปักษ์ในโลก 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)")
}
}
น่าเสียดายที่ฉันไม่สามารถเรียกตนเองว่าตัวแปรสภาพแวดล้อมจนกว่าจะเริ่มต้น:
"ไม่สามารถใช้สมาชิกอินสแตนซ์ 'userData' ภายในคุณสมบัติตัวเริ่มต้นคุณสมบัติตัวเริ่มต้นคุณสมบัติที่เรียกใช้ก่อนที่ 'ตัวเอง' จะพร้อมใช้งาน"
ฉันเห็นเส้นทางที่เป็นไปได้สองสามทาง แต่พวกเขาทั้งหมดรู้สึกเหมือนแฮ็ก ฉันจะเข้าใกล้สิ่งนี้ได้อย่างไร
Property wrappers are not yet supported on local properties
โดยทั่วไปแล้วมันบอกว่าฉันไม่สามารถสร้าง @ObservedObject ในวิธีการเริ่มต้น
init
ลงในโครงสร้างได้