Upgrade Skill Di ITBOX Jadi Lebih Hemat
Special Diskon 50%
Sampai 16 November 2026!
Hari
Jam
Menit
Detik
GARUDABOX

passing data antar class

Beranda › Forums › Belajar Flutter Mobile Apps Tingkat Menengah › passing data antar class

Tagged: 

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #49178
    Setiawan
    Participant

      malam coach,
      saya bingung ketika passing data antar class

      semisal saya punya class statefull A, nah di dalam class tersebut saya membuat variabel bool misal
      bool isDisable = true;
      nah variabel isDisable ini saya gunakan untuk tombol, jika kondisi terpenuhi maka tombol enable jika tidak terpenuhi maka disable.
      tombol ini saya taruh di class A

      kemudian saya membuat Class statefull B, nah disinilah saya mengatur kondisinya apakah terpenuhi atau tidak,,
      nah pertanyaanya bagaimana caranya saya melempar value untuk merubah bool isDisable di class A dari class B

      terimakasih

      #49203
      Anonymous

        Hi Diki,
        Untuk melakukannya pertama kamu perlu membuat function yang isinya itu untuk merubah value tersebut pada class A, contoh nama functionnya setValue, kemudian agar function ini bisa dipanggil dari class B, maka di class B kamu perlu deklarsi sebuah variable dengan dataType Function dengan nama contohnya funcSetValue kemudian masukan variable funcSetValue ini ke dalam constructor class B tersebut. dengan begitu, di class B akan mempunya function yang kita reference ke function yang ada di class A, sehingga pada saat kita memanggil function funcSetValue pada class B, maka isi function yang ada di class A akan terpanggil, dengan begitu jika didalam function yang ada didalam class A itu untuk mengubah nilai yang ada diclass A menjadi nilai lain, makan nilainya akan berubah.

        contoh code di class B (StateFulWidget):

        class ClassB extends StatefulWidget {
          const ClassB(
              {Key? key, required this.functSetValue, required this.funcTanpaParameter}) 
              : super(key: key);
          final Function(String value) functSetValue; //function ini akan menerima value dari class B, dan akan dioper ke function yang ada di class A
          final Function funcTanpaParameter; //function tanpa perlu menerima value
        
          @override
          State<ClassB> createState() => _ClassBState();
        }
        
        class _ClassBState extends State<ClassB> {
          @override
          Widget build(BuildContext context) {
            return Column(
              children: [
                ElevatedButton(
                  onPressed: () {
                    widget.functSetValue("value baru"); //panggil function/variable dari class diatasnya yaitu menggunakan widget.namaVariable
                  },
                  child: const Text('Button'),
                ),
                ElevatedButton(
                  onPressed: () {
                    widget.funcTanpaParameter;
                  },
                  child: const Text('Button'),
                )
              ],
            );
          }
        }

        selain cara diatas, ada cara lain yaitu menggunakan state management provider, jadi valuenya kita provide ke provider, kemudian di class B cukup langsung ubah nilai didalam provider tersebut maka semua widget/class dari child widget dimana value tersebut diprovide akan berubah nilainya karena ngelisten ke value pada provider tersebut. untuk ini konsepnya bisa diliat di video masalah state dan praktik provider.

        #49219
        Setiawan
        Participant

          oke tengkyu coach

        Viewing 3 posts - 1 through 3 (of 3 total)
        • You must be logged in to reply to this topic.
        Shopping cart0
        There are no products in the cart!
        Continue shopping