如何解决@ObservedObject模型更改后,SwiftUI自定义视图不会更新
我创建了一个自定义视图,该视图根据传递的参数是否为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)
视图,该视图在加载数据时确实会更新。
任何想法!我可能做错了什么?
解决方法
至少您的model
应该是ObservedObject
struct MyUpdatingView {
@ObservedObject var model: Model // << here !!
...
还要确保在optionalData
完成后在DispatchQueue.main
上更新loadOptionalDataAsync
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。