ChangeNotifier
- Flutter kursu
- Orta seviye
- Ders 7/99
- 4 dk
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
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
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
class SayacModeli extends ChangeNotifier {
int deger = 0;
void artir() {
deger++;
____;
}
}
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 |