기본적으로,나는 중첩 @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
구조체의 특정입니까?