【发布时间】:2019-11-24 07:07:26
【问题描述】:
我想在获得 User() 后立即更改名称。 DidSet 在这里不起作用。 SwiftUI 中有没有 didSet 的替代方法?
struct Person: Identifiable {
let id = UUID()
var name: String
var number: Int
}
class User: ObservableObject {
@Published var array = [Person(name: "Nick", number: 3),
Person(name: "John", number: 2)
]
}
struct ContentView: View {
@ObservedObject var user = User() {
didSet {
user.array[0].name = "LoL"
}
}
var body: some View {
VStack {
ForEach (user.array) { row in
Text(row.name)
}
}
}
}
【问题讨论】:
-
它会在获得用户后立即更新。应该不需要手动更新。
-
我知道。这只是一个示例。在我的项目中,我需要手动完成。