Sobes.tech
Junior — Middle

Ar galite paaiškinti, kas yra InheritedWidget klasė Flutter ir kaip ji naudojama?

sobes.tech AI

Atsakymas iš AI

InheritedWidget Flutter'e yra pagrindinis klasė widget'ams, kurie gali perduoti duomenis savo palikuonims widget'ų medyje. Jis leidžia efektyviai dalintis būsena ar konfigūracija su vaikų widget'ais be būtinybės aiškiai perduoti duomenis per konstruktorius.

Kaip tai veikia:

  • InheritedWidget saugo duomenis, kurie gali būti reikalingi palikuonims.
  • Palikuonys gali pasiekti šiuos duomenis naudodami metodą of(context).
  • Kai duomenys InheritedWidget keičiasi, Flutter automatiškai perpiešia tuos widget'us, kurie nuo jų priklauso.

Pavyzdys naudojimo:

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

Taip InheritedWidget tarnauja kaip pagrindas kuriant reaktyvius ir efektyvius būsenos valdymo sistemas Flutter'e.