Sobes.tech
Junior — Middle

Pouvez-vous expliquer le principe de fonctionnement de InheritedWidget dans Flutter?

sobes.tech IA

Réponse de l'IA

InheritedWidget dans Flutter est utilisé pour transmettre des données vers le bas dans l’arbre des widgets sans avoir besoin de les passer explicitement via les constructeurs de chaque widget enfant. Cela permet aux widgets enfants d’accéder à des données communes et de se mettre à jour automatiquement lorsqu’elles changent.

Principe de fonctionnement :

  • InheritedWidget stocke des données qui doivent être accessibles aux descendants.
  • Les descendants accèdent à ces données via la méthode of(context).
  • Si les données dans InheritedWidget changent, Flutter notifie tous les widgets qui en dépendent, et ils se reconstruisent.

Exemple :

class MyData extends InheritedWidget {
  final int counter;

  MyData({required this.counter, required Widget child}) : super(child: child);

  static MyData? of(BuildContext context) {
    return context.dependOnInheritedWidgetOfExactType<MyData>();
  }

  @override
  bool updateShouldNotify(MyData oldWidget) {
    return oldWidget.counter != counter;
  }
}

// Utilisation :
// Dans le widget parent, envelopper l’arbre dans MyData
// Dans les widgets enfants, obtenir les données via MyData.of(context)?.counter

Ainsi, InheritedWidget aide à partager efficacement l’état et les données entre widgets sans transmission excessive de paramètres.