小编use*_*293的帖子

@Published 数组中 ObservableObject 的更改不会更新视图

我已经在 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 数组。

问题是,当通过数组中一个对象上的异步任务更改名称属性时,视图不会更新。

你有什么主意吗 ?

非常感谢尼古拉斯

swift swiftui combine observedobject

5
推荐指数
1
解决办法
6071
查看次数

标签 统计

combine ×1

observedobject ×1

swift ×1

swiftui ×1