我有以下代码:
@Observable class Car {
var year:Int
init(year:Int) {
self.year = year
}
}
struct CarView: View {
// @State var model = Car(year: 1) // <-- works
@Environment(Car.self) var model:Car // <-- Error: Cannot find '$model' in scope
var body: some View {
CarSubView(year: $model.year)
}
}
struct CarSubView: View {
@Binding var year:Int
var body: some View {
Button {
year += year
} label: {
Text("TEST")
}
}
}
所以我不明白为什么当我使用@Environment(Car.self) var model:Car
而不是@State var model = Car(year: 1)
时会得到错误Cannot find '$model' in scope
。
我通过环境传递Car模型,我想我可以将年份绑定到CarSubView
。
当模型通过环境进入视图时,我如何将年份作为绑定传递到CarSubView
?
谢谢你
2条答案
按热度按时间laik7k3q1#
按如下方式更改您的CarView:
nue99wik2#
这个应该可以