Sobes.tech
Junior — Middle

Môžete vysvetliť, čo je trieda InheritedWidget vo Flutteri a ako sa používa?

sobes.tech AI

Odpoveď od AI

InheritedWidget v Flutter je základná trieda pre widgety, ktoré môžu prenášať údaje svojim potomkom v strome widgetov. Umožňuje efektívne zdieľanie stavu alebo konfigurácie s deťmi bez potreby explicitného odovzdávania údajov cez konštruktory.

Ako to funguje:

  • InheritedWidget uchováva údaje, ktoré môžu byť potrebné pre potomkov.
  • Potomkovia môžu pristupovať k týmto údajom cez metódu of(context).
  • Keď sa údaje v InheritedWidget zmenia, Flutter automaticky prekreslí tieto widgety, ktoré na nich závisia.

Príklad použitia:

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

Týmto spôsobom InheritedWidget slúži ako základ pre budovanie reaktívnych a efektívnych systémov správy stavu vo Flutteri.