Essencialmente, estou de nidificação @Binding
3 camadas de profundidade.
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
}
}
Qualquer struct eu mudar doubleValue
é aquele em que a didSet
terá de executar, por exemplo, se eu mudar em LayerThree
só que uma impressão, nenhum dos outros.
Eu sou capaz de observar as alterações com .onChange(of: doubleValue)
o que será executado quando ele muda, mas não fazendo sentido para mim por isso didSet
não conseguir executar, exceto na estrutura onde é alterado a partir de.
É @Binding
estrutura específica?