Sobes.tech
Junior — Middle

Pode explicar o que é a classe InheritedWidget no Flutter e como ela é usada?

sobes.tech IA

Resposta da IA

InheritedWidget no Flutter é uma classe base para widgets que podem transmitir dados aos seus descendentes na árvore de widgets. Permite partilhar de forma eficiente o estado ou configuração com widgets filhos sem necessidade de passar explicitamente os dados através dos construtores.

Como funciona:

  • InheritedWidget armazena dados que podem ser necessários para os descendentes.
  • Os descendentes podem aceder a esses dados através do método of(context).
  • Quando os dados em InheritedWidget mudam, o Flutter redesenha automaticamente os widgets que dependem desses dados.

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

Assim, InheritedWidget serve como base para construir sistemas reativos e eficientes de gestão de estado no Flutter.