我正在使用SwiftUI来显示对象数组,并使用ObservableObject来跟踪对象的更改。如果我通过添加或删除列表来更改数组,则列表将自动更改。
但是,如果我更改,则更改对象的属性。该列表不会更新。
即使属性已更新,还是建议强制更新列表,任何人都建议更新列表。
List(self.carService.partList){ part in
RowList(part:part)
}
答案 0 :(得分:0)
推送到主线程?也许正在更新,只是由于线程不匹配而未正确列出
答案 1 :(得分:0)
您需要显示更多代码来解决您的问题。
在大多数情况下,由于无效使用属性,因此ObservedObject不会更新。为了确保您要告诉Object数据已更改,我们可以告诉Object通知视图。 给出了如何使用ObservedObject和Published属性的示例。
import Combine
import SwiftUI
class A: ObservableObject {
@Published var id: String = ""
@Published var value: String = ""
}
struct Example: View {
@ObservedObject var obj: A
var body: some View {
Button(action: {
self.obj.value = "Hi im changed"
self.obj.objectWillChange.send()
}) {
Text("Change me")
}
}
}
要通知视图数据已更改,请注意以下行:
self.obj.objectWillChange.send()
希望这行得通,祝你好运!