Básicamente, estoy de anidación @Binding
3 capas de profundidad.
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
}
}
Lo struct puedo cambiar doubleValue
es aquella en la que la didSet
se consigue correr, así que por ejemplo si lo puedo cambiar en LayerThree
sólo que uno va a imprimir, ninguno de los otros.
Yo soy capaz de ver los cambios con .onChange(of: doubleValue)
que luego recibirá el correr cuando los cambios pero no tener sentido para mí ¿por qué didSet
no consigue correr excepto en la estructura donde se ha cambiado de.
Es @Binding
struct específico?