Sobes.tech
Junior — Middle

¿Puedes explicar qué es la clase InheritedWidget en Flutter y cómo se usa?

sobes.tech AI

Respuesta de la IA

InheritedWidget en Flutter es una clase base para widgets que pueden transmitir datos a sus descendientes en el árbol de widgets. Permite compartir de manera eficiente el estado o la configuración con widgets hijos sin necesidad de pasar explícitamente los datos a través de constructores.

Cómo funciona:

  • InheritedWidget almacena datos que pueden ser necesarios para los descendientes.
  • Los descendientes pueden acceder a estos datos mediante el método of(context).
  • Cuando los datos en InheritedWidget cambian, Flutter vuelve a dibujar automáticamente los widgets que dependen de estos datos.

Ejemplo de uso:

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

De esta manera, InheritedWidget sirve como base para construir sistemas reactivos y eficientes de gestión de estado en Flutter.