Sobes.tech
Junior — Middle

Vai jūs varat izskaidrot, kas ir InheritedWidget klase Flutter un kā tā tiek izmantota?

sobes.tech AI

Atbilde no AI

InheritedWidget Flutter ir pamata klase widgetiem, kas var nodot datus saviem bērniem kokā. Tas ļauj efektīvi dalīties ar stāvokli vai konfigurāciju ar bērnu widgetiem bez nepieciešamības tieši nodot datus caur konstruktoriem.

Kā tas darbojas:

  • InheritedWidget glabā datus, kas var būt nepieciešami bērniem.
  • Bērni var piekļūt šiem datiem, izmantojot metodi of(context).
  • Kad dati InheritedWidget mainās, Flutter automātiski pārkrāso tos widgetus, kas no tiem ir atkarīgi.

Piemērs lietošanai:

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

Tādējādi, InheritedWidget kalpo kā pamats, būvējot reaktīvas un efektīvas stāvokļa pārvaldības sistēmas Flutter.