Tôi không chắc đây có phải là một antipotype trong thế giới SwiftUI mới dũng cảm này mà chúng ta đang sống hay không, nhưng về cơ bản tôi có một @En môiObject với một số thông tin người dùng cơ bản được lưu trong đó mà quan điểm của tôi có thể gọi.
Tôi cũng có một @ObservedObject sở hữu một số dữ liệu cần thiết cho chế độ xem này.
Khi chế độ xem xuất hiện, tôi muốn sử dụng @En MôiObject đó để khởi tạ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)")
}
}
Thật không may, tôi không thể tự gọi biến môi trường cho đến khi khởi tạo:
"Không thể sử dụng thành viên 'userData' trong trình khởi tạo thuộc tính; trình khởi tạo thuộc tính chạy trước khi 'tự' có sẵn."
Tôi có thể thấy một vài tuyến đường có thể tiến về phía trước, nhưng tất cả đều cảm thấy như bị hack. Làm thế nào tôi nên tiếp cận điều này?
Property wrappers are not yet supported on local properties
Về cơ bản, nó nói rằng tôi không thể tạo @ObservedObject trong một phương thức init.
init
vào struct.