CodeBlanks Logo Icon CodeBlanks

ChangeNotifier

ChangeNotifier ile dinlenebilir state sınıfı yapmayı öğrenirsin.

ChangeNotifier

ChangeNotifier, değiştiğinde dinleyicilerini haberdar eden bir sınıftır. State modelini bu sınıftan türeterek, değişiklikte notifyListeners() çağırırsın.

class SayacModeli extends ChangeNotifier {
  int deger = 0;

  void artir() {
    deger++;
    notifyListeners();
  }
}

Dinleyen widget'lar otomatik olarak yeniden inşa edilir.

Model sınıfı

Bir model sınıfı, state'i ve onu değiştiren metotları tutar. ChangeNotifier'dan türediğinde, her değişiklikte notifyListeners() çağırman yeterlidir; gerisini framework halleder.

class SayacModeli extends ChangeNotifier {
  int deger = 0;
  void artir() {
    deger++;
    notifyListeners();
  }
}

Model ayrı bir dosyada da tutulabilir.

Uygulama ChangeNotifier modeli yap

SayacModeli sınıfını ChangeNotifier'dan türet. deger 0'dan başlasın. artir metodu deger'i artırıp notifyListeners() çağırsın ve print('artirildi: $deger') yazsın. main'de model oluştur ve artir'i çağır.

Başlangıç kodu

main.dart
import 'package:flutter/material.dart';

// SayacModeli, ChangeNotifier'dan türetilsin

class SayacModeli {
  int deger = 0;

  void artir() {
    deger++;
    // notifyListeners çağrısı ekle
    print('artirildi: $deger');
  }
}

void main() {
  final model = SayacModeli();
  model.artir();
}

Örnek çözüm

main.dart
import 'package:flutter/material.dart';

class SayacModeli extends ChangeNotifier {
  int deger = 0;

  void artir() {
    deger++;
    notifyListeners();
    print('artirildi: $deger');
  }
}

void main() {
  final model = SayacModeli();
  model.artir();
}

Beklenen çıktı

artirildi: 1

Soru ve cevaplar

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

1 ChangeNotifier'da dinleyicileri bilgilendirmek için hangi metod çağrılır?

  • rebuild()
  • notifyListeners() Doğru cevap
  • update()
  • setState()

Açıklama: ChangeNotifier'da state değiştiğinde notifyListeners() çağrılır; bu, dinleyen widget'ları yeniden inşa edilmesi için bilgilendirir.

2 notifyListeners çağrısını ekle

Soru
class SayacModeli extends ChangeNotifier {
  int deger = 0;
  void artir() {
    deger++;
    ____;
  }
}
Cevap
class SayacModeli extends ChangeNotifier {
  int deger = 0;
  void artir() {
    deger++;
    notifyListeners();
  }
}

Açıklama: ChangeNotifier'da deger değiştikten sonra notifyListeners() çağrılır; bu, dinleyen widget'ları bilgilendirir.

3 ChangeNotifier parçaları

Kavram Anlamı
ChangeNotifier Dinleyicileri bilgilendiren temel sınıf
notifyListeners Dinleyicilere değişikliği bildirir
extends ChangeNotifier Modelin dinlenebilir olması
model State'i ve metotları tutan sınıf

Orta seviye bölümündeki tüm dersler