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-ում։