#author("2022-11-16T04:34:52+00:00","default:src128","src128") &tag(SwiftUI/PropertyWrapper); *目次 [#z8da1a17] #contents *関連ページ [#n88c2da1] *参考情報 [#ua83d4c0] -[[SwiftUIのデータ管理 Property Wrapper編:https://blog.personal-factory.com/2021/01/23/how-to-use-propertywrapper-in-swiftui/]] *Property Wrapperの種類 [#l9739a89] -@State、@Binding、@StateObject、@ObservedObjectなどデータを管理するためのProperty Wrapperがたくさん存在する ** @State [#b535e418] -データが値型。データの更新あり。データの発生源がVIewの場合に使用。 -ボタンをタップするとその数字が増える。 #pre{{ struct StateSample: View { private var counter = 0 var body: some View { Button(action: { self.counter += 1 }, label: { Text("counter is \(counter)") }) } } }} ** @Binding [#pd81fb92] -データが値型。データの更新あり。データの発生源は外部。 #pre{{ struct ParentView: View { @State private var counter = 0 var body: some View { ChildView(counter: $counter) .frame(width: .infinity) } } struct ChildView: View { @Binding var counter: Int var body: some View { Button(action: { counter += 1 }, label: { Text("\(counter)") .font(.title) }) .border(Color.red) } } }}