Sobes.tech
Junior — Middle

Puteți explica ce reprezintă clasa InheritedWidget în Flutter și cum este utilizată?

sobes.tech AI

Răspuns de la AI

InheritedWidget în Flutter este o clasă de bază pentru widget-uri care pot transmite date descendenților lor în arborele de widget-uri. Permite partajarea eficientă a stării sau configurației cu widget-urile copil fără a fi nevoie să transmiteți explicit datele prin constructori.

Cum funcționează:

  • InheritedWidget stochează datele care pot fi necesare descendenților.
  • Descendenții pot accesa aceste date prin metoda of(context).
  • Când datele din InheritedWidget se schimbă, Flutter redesenează automat widget-urile care depind de aceste date.

Exemplu de utilizare:

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

Astfel, InheritedWidget servește ca bază pentru construirea sistemelor reactive și eficiente de gestionare a stării în Flutter.