Junior — Middle
Czy możesz wyjaśnić, czym jest klasa InheritedWidget w Flutter i jak jest używana?
sobes.tech AI
Odpowiedź od AI
InheritedWidget w Flutterze to podstawowa klasa dla widżetów, które mogą przekazywać dane swoim potomkom w drzewie widżetów. Umożliwia efektywne dzielenie się stanem lub konfiguracją z widżetami potomnymi bez konieczności jawnego przekazywania danych przez konstruktory.
Jak to działa:
InheritedWidgetprzechowuje dane, które mogą być potrzebne potomkom.- Potomkowie mogą uzyskać dostęp do tych danych za pomocą metody
of(context). - Gdy dane w
InheritedWidgetsię zmieniają, Flutter automatycznie rysuje ponownie te widżety, które od nich zależą.
Przykład użycia:
class MyInheritedWidget extends InheritedWidget {
final int data;
MyInheritedWidget({required this.data, required Widget child}) : super(child: child);
static MyInheritedWidget? of(BuildContext context) {
return context.dependOnInheritedWidgetOfExactType<MyInheritedWidget>();
}
@override
bool updateShouldNotify(MyInheritedWidget oldWidget) {
return data != oldWidget.data;
}
}
W ten sposób InheritedWidget służy jako podstawa do budowania reaktywnych i wydajnych systemów zarządzania stanem w Flutterze.