【发布时间】:2020-07-31 11:16:48
【问题描述】:
我已经为 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
}
}
}
我有一个 ObservableObject(父级)存储一个 @Published 的 ObservableObjects(子级)数组。
问题在于,当通过数组中一个对象上的异步任务更改名称属性时,视图不会更新。
你有什么想法吗?
非常感谢 尼古拉斯
【问题讨论】:
-
在这里查看这个问题:stackoverflow.com/q/58406287/4938203
-
非常感谢!
标签: swift swiftui combine observedobject