Sobes.tech
Junior — Middle

Pouvez-vous expliquer ce qu'est la classe InheritedWidget dans Flutter et comment elle est utilisée?

sobes.tech IA

Réponse de l'IA

InheritedWidget dans Flutter est une classe de base pour les widgets qui peuvent transmettre des données à leurs descendants dans l'arbre des widgets. Il permet de partager efficacement l'état ou la configuration avec des widgets enfants sans avoir besoin de transmettre explicitement les données via les constructeurs.

Comment cela fonctionne :

  • InheritedWidget stocke des données qui peuvent être nécessaires pour les descendants.
  • Les descendants peuvent accéder à ces données via la méthode of(context).
  • Lorsque les données dans InheritedWidget changent, Flutter redessine automatiquement les widgets qui en dépendent.

Exemple d'utilisation :

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

Ainsi, InheritedWidget sert de base pour construire des systèmes réactifs et efficaces de gestion d'état dans Flutter.