Sobes.tech
Junior — Middle

Můžete vysvětlit, co je třída InheritedWidget ve Flutteru a jak se používá?

sobes.tech AI

Odpověď od AI

InheritedWidget ve Flutteru je základní třída pro widgety, které mohou předávat data svým potomkům v stromu widgetů. Umožňuje efektivně sdílet stav nebo konfiguraci s potomky bez nutnosti explicitně předávat data přes konstruktory.

Jak to funguje:

  • InheritedWidget uchovává data, která mohou být potřebná potomkům.
  • Potomci mohou k těmto datům přistupovat přes metodu of(context).
  • Když se data v InheritedWidget změní, Flutter automaticky překreslí widgety, které na ně závisí.

Příklad použití:

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 způsobem InheritedWidget slouží jako základ pro vytváření reaktivních a efektivních systémů správy stavu ve Flutteru.