1.@Stateの使いどころ
struct(構造体)の中では基本的に値(プロパティ)の変更が出来ないので、値の変更が行われる部分には@Stateを使って対応します。
@State var testStr: String = ""
値(プロパティ)の例
struct Person {
// 値 (プロパティ)
@State var testStr: String = ""
var name: String = "きんちゃん"
// 関数(メソッド)
func intro() {
print("私は\(name)です。")
}
}
値の変更は宣言したviewの中でしか出来ないためprivate修飾子を付けるコトが推奨されています。
@State private var testStr: String = ""
Stateの値にアクセスするには$を付けなければなりません。
上記の例でいうと$testStr
2.サンプル
ContentView.swift
import SwiftUI
struct ContentView: View {
// @Stateを外したりTextFieldの$testStrから$を外す形ではエラー
@State private var testStr: String = ""
var body: some View {
VStack {
// 入力フォーム
TextField("文字を入力", text: $testStr)
// 入力フォームの枠線
.textFieldStyle(RoundedBorderTextFieldStyle())
// 余白
.padding()
//入力フォームの下に入力文字を出力
Text(testStr)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}