我创建了一个自定义视图,该视图根据传递的参数是否为nil
来显示内容。我面临的问题是,在optionalData更改时,视图没有更新/无效。 optionalData存储在我的模型中。
struct MyUpdatingView {
var model: Model
var body: some View {
if model.optionalData == nil {
ProgressView()
} else {
OptionalDataView(model.optionalData!)
}
}
}
型号:
class Model: ObservableObject {
@Published var optionalData: OptionalData
init (){
loadOptionalDataAsync()
}
}
我面临的问题是在主视图中加载可选数据时视图未更新。但是,有趣的是,我可以添加一个Text(model.optionalData.debugDescription)
视图,该视图在加载数据时确实会更新。
任何想法!我可能做错了什么?
答案 0 :(得分:0)
至少您的model
应该是ObservedObject
struct MyUpdatingView {
@ObservedObject var model: Model // << here !!
...
还要确保在optionalData
完成后在DispatchQueue.main
上更新loadOptionalDataAsync
。