【发布时间】:2021-06-17 01:34:17
【问题描述】:
我在 ContentView 类中有我的主视图,我在 ContentViewModel 类中进行网络调用,并使用响应更新类调用 User。
我的 ContentView 有几个子视图,例如 HeaderView。当我从 API 响应更新 User 类属性时,我也想更新 HeaderView 中定义的 UI 元素。如何将数据从 ContentViewModel 类传递到我的子视图(HeaderView)?
我可以通过设置 ContentViewModel 类 ObservableObject 来更新非常简单的 ContentView 元素
class ContentViewModel: ObservableObject {
并发布了用户对象
@Published var user = User()
并在我在同一个 ContentViewModel 中收到 API 响应后更新用户的属性
self.user.name = name
我的 ContentView 与其模型类的关系如下所示
@StateObject private var contentViewModel = ContentViewModel()
UI 更新如下
Text("My name \(contentViewModel.user.name)")
这就是 ContentView 的工作场景。但我需要将值传递给 HeaderView()。 我的用户类如下所示
import Foundation
class User {
var name = ""
// more attributes
}
【问题讨论】:
-
你能显示
HeaderView的代码吗?也许只使用Binding