Junior — Middle
Flutter'da InheritedWidget'in çalışma prensibini açıklayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Flutter'da InheritedWidget, her bir çocuk widget'ın yapıcıları aracılığıyla açıkça iletmek zorunda kalmadan verileri ağaç boyunca aşağı doğru iletmek için kullanılır. Bu, çocuk widget'ların ortak verilere erişmesini ve bunlar değiştiğinde otomatik olarak güncellenmesini sağlar.
Çalışma prensibi:
- InheritedWidget, alt sınıfların erişmesi gereken verileri tutar.
- Alt sınıflar, bu verilere
of(context)yöntemiyle erişir. - Eğer InheritedWidget'taki veriler değişirse, Flutter bu widget'a bağımlı tüm widget'ları bilgilendirir ve yeniden oluştururlar.
Örnek:
class MyData extends InheritedWidget {
final int counter;
MyData({required this.counter, required Widget child}) : super(child: child);
static MyData? of(BuildContext context) {
return context.dependOnInheritedWidgetOfExactType<MyData>();
}
@override
bool updateShouldNotify(MyData oldWidget) {
return oldWidget.counter != counter;
}
}
// Kullanım:
// Ebeveyn widget'ta ağaç MyData ile sarmalanır
// Çocuk widget'larda, veriye MyData.of(context)?.counter ile erişilir
Bu şekilde, InheritedWidget, durum ve verilerin widget'lar arasında verimli bir şekilde paylaşılmasına yardımcı olur, gereksiz parametre iletimi olmadan.