我已经在 SwiftUI 的问题上苦苦挣扎了几个小时。
这是我的问题的一个简化示例:
class Parent: ObservableObject {
@Published var children = [Child()]
}
class Child: ObservableObject {
@Published var name: String?
func loadName() {
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
// Async task here...
self.objectWillChange.send()
self.name = "Loaded name"
}
}
}
struct ContentView: View {
@ObservedObject var parent = Parent()
var body: some View {
Text(parent.children.first?.name ?? "null")
.onTapGesture {
self.parent.objectWillChange.send()
self.parent.children.first?.loadName() // does not update
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个 ObservableObject(父级),存储 ObservableObjects(子级)的 @Published 数组。
问题是,当通过数组中一个对象上的异步任务更改名称属性时,视图不会更新。
你有什么主意吗 ?
非常感谢尼古拉斯