Essentiellement, je suis de nidification @Binding
3 niveaux de profondeur.
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
}
}
Selon struct-je changer doubleValue
dans l'est de l'endroit où l' didSet
allez vous faire, si par exemple je l'ai changer en LayerThree
seulement que l'on va imprimer, aucun des autres.
Je suis en mesure de surveiller les modifications apportées à .onChange(of: doubleValue)
qui seront ensuite courir quand il change, mais il ne fait pas de sens pour moi pourquoi didSet
ne pas se faire rouler, sauf sur la structure où il est modifié à partir de.
Est @Binding
struct spécifique?