【发布时间】:2020-10-30 23:37:04
【问题描述】:
我创建了一个 UserData 实例,以便其他类可以观察此实例并使用用户名显示必要的信息。我在这里要做的是,当用户登录时,具有用户相关存储属性的不同类将根据应用程序中的用户活动不时更新(即通过调用 api)。 但是,它在属性初始化程序中显示错误“无法使用实例成员 'userData';属性初始化程序在“自我”可用之前运行。任何想法如何解决这个问题? 我不确定如何将数据从单个 ObservedObject 传递到另一个。
struct passingData: View {
@ObservedObject var userData = UserData()
@ObservedObject var images = ImageURL(userData: userData)
@ObservedObject var payment = Payment(userData: userData)
var body: some View {
VStack{
TextField("Enter userName", text: $userData.userName)
Text("url is \(images.imageURL)")
Text("Payment detail: \(payment.paymentDate)")
}
}
}
class Payment: ObservableObject{
@Published var paymentDate = ""
@ObservedObject var userData: UserData
init(userData: UserData){
self.userData = userData
loadPaymentDate()
}
func loadPaymentDate(){
self.paymentDate = "last payment date from \(userData.userName) is someDate "
}
}
class ImageURL: ObservableObject{
@Published var imageURL = ""
@ObservedObject var userData: UserData
init(userData: UserData){
self.userData = userData
loadImageURL()
}
func loadImageURL(){
self.imageURL = "123_\(userData.userName).com"
}
}
class UserData: ObservableObject{
@Published var userName = ""
}
【问题讨论】:
标签: ios swift class swiftui observable