Ios 属性更改时可观察不更新列表
我正在使用列表上的SwiftUI显示对象数组,并使用ObserveObject跟踪对象的变化。如果通过添加或删除来更改数组,列表将自动更改 但是如果我改变了对象的属性。该列表将不会更新 任何建议更新列表,即使属性得到更新,或无论如何强制更新列表Ios 属性更改时可观察不更新列表,ios,arrays,list,observable,swiftui,Ios,Arrays,List,Observable,Swiftui,我正在使用列表上的SwiftUI显示对象数组,并使用ObserveObject跟踪对象的变化。如果通过添加或删除来更改数组,列表将自动更改 但是如果我改变了对象的属性。该列表将不会更新 任何建议更新列表,即使属性得到更新,或无论如何强制更新列表 List(self.carService.partList){ part in RowList(part:part) } 推到主线程?可能正在进行更新,只是因为线程不匹配而没有正确列出您需要显示更多代码来解决问题 在大多数情况下,由于属性
List(self.carService.partList){ part in
RowList(part:part)
}
推到主线程?可能正在进行更新,只是因为线程不匹配而没有正确列出您需要显示更多代码来解决问题 在大多数情况下,由于属性使用无效,ObservedObject不会更新。为了确保您想告诉对象数据已更改,我们可以告诉对象通知视图。 有关如何使用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()
祝你好运 如果添加您的
observateObject
以及列表所包含的视图结构,我们将能够更有效地回答您的问题。请显示更改的属性代码。我在DispatchQueue.main.async
下所做的任何更改,如我所说,如果添加或删除数组的任何成员,都可以正常工作。