【发布时间】:2020-07-11 07:04:41
【问题描述】:
这篇文章与this post that I made相关。虽然现在没有初始化错误,但似乎这里有一个问题:当您更改文本字段中的用户名时,url 和付款明细仍然不会更新?知道如何解决这个问题吗?
struct passingData: View {
@ObservedObject var userData: UserData
@ObservedObject var images: ImageURL
@ObservedObject var payment: Payment
init() {
let data = UserData()
self.userData = data
self.images = ImageURL(userData: data)
self.payment = Payment(userData: data)
}
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 12.12.22 "
}
}
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 = ""
}
【问题讨论】:
-
付款明细没有更新是什么意思?您指的是
paymentDate属性的值吗?您仅在创建Payment对象时设置该值。它不会因为userData.userName属性发生变化而改变。
标签: ios swift class swiftui observable