Sobes.tech
Junior — Middle

El tudná magyarázni, hogy mi az az InheritedWidget osztály a Flutterben, és hogyan használják?

sobes.tech MI

Válasz az MI-től

Az InheritedWidget Flutterben egy alapvető osztály azokhoz a widgetekhez, amelyek adatokat továbbíthatnak leszármazottaiknak a widgetfa struktúrában. Hatékonyan lehetővé teszi az állapot vagy konfiguráció megosztását a gyermek widgetek között anélkül, hogy az adatokat explicit módon kellene átadni a konstruktorokon keresztül.

Hogyan működik:

  • Az InheritedWidget tárolja azokat az adatokat, amelyekre a leszármazottaknak szükségük lehet.
  • A leszármazottak hozzáférhetnek ezekhez az adatokhoz az of(context) metódus segítségével.
  • Amikor az InheritedWidget adatai megváltoznak, a Flutter automatikusan újrarajzolja azokat a widgeteket, amelyek ettől függenek.

Használati példa:

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;
  }
}

Így az InheritedWidget alapot ad a reaktív és hatékony állapotkezelő rendszerek kiépítéséhez Flutterben.