我有这样的代码:
struct MenuView : View {
@Environment(\.verticalSizeClass) var sizeClass
@EnvironmentObject var model : MenuModel
@ObservedObject var items = MenuItems()
var body: some View {
}
}
而且我考虑了为什么 ObservableObject 不保持它的状态(这个对象没有一个实例),而是在每个视图重绘时重新创建它(调用 init() 方法),而其他一些状态发生变化。我认为每个对象一次。
但是点击按钮会导致 View 被重新创建,并且这个 ObservedObject 也被重新创建。我是否应该不通过属性初始化而是在父级中创建它并将其传递给构造函数?
如何正确地将@ObservedObject 传递给子视图?我考虑将它传递给 @Bindable 属性,但它不起作用。
我正在通过Button model.isMenuOpen @Published 属性进行更改