我正在尝试使用新的@Observable,并且在如何使属性在环境对象内部可绑定的情况下陷入困境。
因此,在应用程序中,我以编程方式设置导航,就像苹果建议的“Robust Navigation”一样。
NavigationModel作为environmentObject注入,属性columnVisibility是同一模型的一部分,并作为绑定属性传递给NavigationSplitview。
final class NavigationModel: ObservableObject, Codable {
@Published var selectedCategory: Category?
@Published var recipePath: [Recipe]
@Published var columnVisibility: NavigationSplitViewVisibility
}
NavigationSplitView(
columnVisibility: $navigationModel.columnVisibility
)
使用观察宏
@Observable
final class NavigationModel {
var columnVisibility: NavigationSplitViewVisibility = .automatic
}
当尝试执行相同操作时,它会失败
我是不是漏掉了什么
我能想到的一个解决方案是将columnVisibility移动到其他类,并使用宏或在同一视图中定义属性使其成为Observable。
1条答案
按热度按时间lx0bsm1f1#
你错过了转换为
@Bindable
:如果使用
@State
结构体而不是类,就不需要这个。