Mengenal State dan Binding SwiftUI

Idris
2 min readMay 10, 2020

--

Pengantar

Ketika memulai pemrograman menggunakan SwiftUI, istilah State dan Binding akan sering sekali diterapkan. Keduanya adalah property wrapper yang dapat membaca dan mengubah sebuah nilai. Untuk lebih jelas, akan dijelaskn pada kode di bawah ini.

Pembahasan

State

SwiftUI mengelola penyimpanan properti apa pun yang Anda nyatakan sebagai State. Ketika nilai berubah, tampilan body akan dimuat ulang. Penggunaan State hanya bisa di lakukan di dalam view itu saja.

struct ContentView: View {
@State var count: Int = 0
var body: some View {
VStack {
Text("\(count)")
.font(.title)
Button(action: {
self.count += 1
}) {
Text("Add")
}
}
}
}

Penjelasan kode:
Terdapat State count yang didefenisikan dengan nilai 0, selain itu ada widget text yang berfungsi untuk menampilkan State count, kemudian widget button yang berfungsi melakukan penambahan nilai pada State count setiap kali button tersebut diklik. Jadi, dengan adanya State pada variabel count, tampilan akan dimuat ulang ketika terjadi perubahan nilai.

Binding

Hampir sama dengan State, Binding dapat berbagi antar view. Pada umumnya, penggunan Binding ketika ingin mengirim sebuah nilai dari view ke sub-view.

struct ContentView: View {
@State var count: Int = 0
var body: some View {
VStack {
Text("\(count)")
.font(.title)
AddButtonView(count: $count)
}
}
}
struct AddButtonView: View {
@Binding var count: Int
var body: some View {
Button(action: {
self.count += 1
}) {
Text("Add")
}
}
}

Penjelasan kode:
Pada kode di atas terdapat 2 view, ContentView mengirim sebuah nilai yang nantinya akan dibinding ke AddButtonView, salah satu karakteristik Binding adalah ditandai dengan tanda “$”.

Kesimpulan

State dan Binding adalah property wrapper yang mampu mengelola sebuah nilai. Ketika nilai berubah, tampilan body akan dimuat ulang.

--

--