Callback Function pada Flutter

terkadang kita perlu membuat sebuah komponen yang memiliki event dynamic baik karena keadaaan state ataupun ketergantungan / komunikasi dengan widget lainnnya. baiklah mungkin contoh berikut bisa menggambarkan apa yang dimaksud.

Kita memiliki beberapa textfield dan 2 button yang akan berubah ubah tergantung dengan keadaan state sekarang (login atau register). berikut contoh kode nya:

Kode diatas akan berjalan normal, namun ketika kita memiliki kebutuhan untuk memisah misahkan widget menjadi lebih kecil dan supaya bisa digunakan ulang (reusable), maka kita akan bertemu dengan kesulitan menghandle widget tersebut. Nah maka dari itu kita bisa menggunakan callback function VoidCallback untuk mendapatkan callback saat user menekan tombol login / register.

Maka code nya akan menjadi seperti berikut:

VoidCallback

Dari kode diatas kita bisa mengerti bahwa kita bisa menggunakan Voidcallback untuk membuat widget kita reusable dan mengguankan callback yang dynamic. semuanya akan lancar sampai ada saatnya kita memerlukan fungsi dengan paramater tertentu atau kita ingin melakukan sesuatu didalam closure onPressed di widget utama, setelahnya baru kita menggunakan callback. nah disinilah Function dan Function(x) beraksi.

Function(x)

kita bisa menggunakan Function ataupun Function() dengan paramater untuk handling callback kita, contoh pada kode berikut

dan kita cukup menambahkan property onchanged pada Widget yang digunakan menjadi seperti berikut:

CustomTextField(
controller: usernameController,
labelText: 'Username',
onChanged: (text) {
print(text);
},
),

Nah begitulah kira kira contoh penggunaan callback function untuk membuat widget yang reusable dan tetap dynamic tergantung kebutuhan kita.

kalau mau lihat kode lengkapnya ada disini : https://gitlab.com/IhwanID/flutter-callback-function

Kalau berkenan mari mampir di Discord & Youtube Channel Kita ya kak 🙏

Terimakasih sudah membaca. kalian luar biasa 👍

Swift, Kotlin and Flutter Developer | Tech Geek, Passionate Writer — ihwan.id

Swift, Kotlin and Flutter Developer | Tech Geek, Passionate Writer — ihwan.id