@Stateプロパティ
CoddyのSwiftジャーニー「SwiftUI入門」セクションの一部。レッスン 20/50。
ビューの本体は、そのデータから再計算されます。変化するデータを持つには、プロパティに @State を付けます。状態プロパティが変化すると、SwiftUI は本体を再度実行し、画面を更新します。
struct ContentView: View {
@State private var count = 0
var body: some View {
VStack {
Text("Count: \(count)")
Button("Add one") {
count += 1
}
}
}
}タップするたびに count += 1 が実行され、テキストには新しい数値が表示されます。テキストを自分で更新することはありません。テキストは count に基づいて記述されているため、その値に追従します。
ビュー内の通常のvarは、ビューが構造体であるため、その本体から変更できません。@Stateは構造体の外部に値を保存するため、再描画のたびに値が保持されます。状態にはprivateを付けます。このビューに属するためです。
チャレンジ
簡単タップカウンターを完成させましょう。ボタンのアクションが空になっています。タップするたびに1をtapsに加算し、1回タップした後はテキストがTaps: 1と表示され、2回タップした後はTaps: 2と表示されるようにしてください。
自分で試してみよう
import SwiftUI
@main
struct CoddyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
SwiftUI入門のすべてのレッスン
自分で練習してみよう: Swiftプレイグラウンド