属性更改时可观察到的不更新列表

时间:2019-11-19 16:58:29

标签: ios arrays list observable swiftui

我正在使用SwiftUI来显示对象数组,并使用ObservableObject来跟踪对象的更改。如果我通过添加或删除列表来更改数组,则列表将自动更改。

但是,如果我更改,则更改对象的属性。该列表不会更新。

即使属性已更新,还是建议强制更新列表,任何人都建议更新列表。

 List(self.carService.partList){ part in
     RowList(part:part)
 }

2 个答案:

答案 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()

希望这行得通,祝你好运!

相关问题