@State untuk State Lokal
Penjelasan
Karena View di SwiftUI adalah struct (immutable), kamu tidak bisa langsung mengubah property biasa (var) di dalamnya dan berharap tampilan ikut berubah. Di sinilah @State berperan: property wrapper ini memberi tahu SwiftUI bahwa nilai tersebut adalah sumber kebenaran (source of truth) milik View itu sendiri, disimpan di luar struct View (dikelola oleh SwiftUI), dan setiap perubahan padanya akan memicu SwiftUI mengevaluasi ulang body. @State idealnya dipakai untuk state yang sederhana dan lokal — hanya relevan untuk satu View, misalnya status toggle, teks input sementara, atau counter. Konvensinya, property @State ditandai private karena tidak dimaksudkan diakses langsung dari luar View.
Contoh Konsep
import SwiftUI
struct CounterView: View {
@State private var jumlah = 0
var body: some View {
VStack {
Text("Jumlah: \(jumlah)")
.font(.title)
Button("Tambah") {
jumlah += 1
}
}
}
}
Praktikum
Tambahkan @State private var suka = false, tampilkan Text yang menunjukkan nilai suka, lalu buat Button("Toggle Suka") yang membalik nilainya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Jangan pakai @State untuk data yang perlu dibagi ke banyak View atau bertahan lama (mis. data dari server) — untuk itu kamu butuh @Binding, @ObservedObject, atau @EnvironmentObject yang dibahas di topik berikutnya.