CodeBlanks Logo Icon CodeBlanks

setState metodu

setState'in build'i yeniden tetiklediğini öğrenirsin.

setState metodu

setState, State içindeki veriyi güncelledikten sonra Flutter'a build'i yeniden çağırması için sinyal veren metottur. setState'in içine yazdığın kod veriyi değiştirir; setState çıktıktan sonra Flutter State'i dirty olarak işaretler ve bir sonraki karede build yeniden çalışır.

void artir() {
  setState(() {
    deger = deger + 1;
  });
}

dirty ve rebuild

setState çağrıldığında State dirty (kirli) olarak işaretlenir. Flutter, bir sonraki karede dirty olan tüm State'lerin build metodunu yeniden çağırır. Bu işlem rebuild olarak bilinir. setState olmadan yapılan değişiklikler build'i tetiklemediği için ekrana yansımaz.

// yanlış: setState yok, ekran yenilenmez
void artirYanlis() {
  deger = deger + 1;
}

// doğru: setState ile build tetiklenir
void artirDogru() {
  setState(() {
    deger = deger + 1;
  });
}

Uygulama setState bilgisini yazdır

main içinde iki satırı print ile yazdır: setState tetikler ve dirty bekler.

Başlangıç kodu

main.dart
void main() {
  // iki satır yazdır:
  // setState tetikler
  // dirty bekler

}

Örnek çözüm

main.dart
void main() {
  print('setState tetikler');
  print('dirty bekler');
}

Beklenen çıktı

setState tetikler
dirty bekler

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 setState ne yapar?

  • Uygulamayı tamamen yeniden başlatır
  • Widget'ı ağaçtan kaldırır
  • Veri değişikliğini işaretler ve build'i tetikler Doğru cevap
  • Yeni bir State nesnesi üretir

Açıklama: setState, veri değişikliğini işaretler ve Flutter'a build'i yeniden çağırma sinyali verir.

2 setState çağrısı

Soru
void artir() {
  ____(() {
    deger = deger + 1;
  });
}
Cevap
void artir() {
  setState(() {
    deger = deger + 1;
  });
}

Açıklama: setState, veri güncellemesini Flutter'a bildirip build'i tetikler.

3 setState kavramları

Kavram Anlamı
setState çağrısı build'i yeniden tetikler
rebuild build metodunun yeniden çağrılması
dirty State'in yeniden çizilmeyi beklemesi
next frame build'in çalıştığı an

Başlangıç bölümündeki tüm dersler