基本上,我在筑巢 @Binding
3层的深度。
struct LayerOne: View {
@State private var doubleValue = 0.0
var body: some View {
LayerTwo(doubleValue: $doubleValue)
}
}
struct LayerTwo: View {
@Binding var doubleValue: Double {
didSet {
print(doubleValue)
}
}
var body: some View {
LayerThree(doubleValue: $doubleValue)
}
}
struct LayerThree: View {
@Binding var doubleValue: Double {
didSet {
print(doubleValue) // Only this print gets run when doubleValue is updated from this struct
}
}
var body: Some view {
// Button here changes doubleValue
}
}
哪种结构改变我 doubleValue
在一个地方的 didSet
会得到运行,因此,举例来说,如果我改变它 LayerThree
只有一个将打印,没有任何其他人。
我能看到的变化与 .onChange(of: doubleValue)
然后将得到运行时,它的变化,但它是不理解我为什么 didSet
不会得到运行,除了对结构,它的改变。
是 @Binding
struct具体?