Sobes.tech
Junior — Middle

Можете ли да објасните шта је класа InheritedWidget у Flutter-у и како се користи?

sobes.tech АИ

Одговор од АИ

InheritedWidget у Flutter је основна класа за widget-е који могу преносити податке својим потомцима у стаблу widget-а. Он омогућава ефикасно делење стања или конфигурације са дечијим widget-има без потребе за експлицитним преносом података кроз конструкторе.

Како ради:

  • InheritedWidget чува податке који могу бити потребни потомцима.
  • Потомци могу приступити тим подацима преко методе of(context).
  • Када се подаци у InheritedWidget промене, Flutter аутоматски поново црта widget-е који зависе од њих.

Пример употребе:

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

На овај начин, InheritedWidget служи као основа за изградњу реактивних и ефикасних система управљања стањем у Flutter-у.