Esasen yuvalıyorum. @Binding
3 kat derinliğinde.
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
}
}
Hangi yapıyı değiştirirsem doubleValue
içinde bir tane var didSet
çalıştırılacak, örneğin değiştirirsem LayerThree
sadece biri basacak, diğerleri basmayacak.
Değişiklikleri izleyebiliyorum .onChange(of: doubleValue)
o zaman değiştiğinde kaçacak ama neden bana mantıklı gelmiyor didSet
değiştirildiği yapı dışında çalıştırılmayacak.
Oluyor @Binding
yapıya özgü mü?