Sobes.tech
Junior — Middle

Оё метавонед шарҳ диҳед, ки класи InheritedWidget дар Flutter чӣ аст ва чӣ гуна истифода мешавад?

sobes.tech AI

Ҷавоб аз AI

InheritedWidget дар Flutter — ин синфи асосӣ барои 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 хизмат мекунад.