Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ, რა არის InheritedWidget კლასი Flutter-ში და როგორ გამოიყენება?

sobes.tech AI

პასუხი AI-სგან

InheritedWidget Flutter-ში არის ძირითადი კლასი იმ ვიჯეტებისთვის, რომლებიც შეუძლიათ გადმოსცენ მონაცემებს თავიანთ შთამომავლებს ვიჯეტების ხეში. ის საშუალებას აძლევს ეფექტურად გაუზიაროს მდგომარეობა ან კონფიგურაცია შვილ ვიჯეტებს, გარეშე საჭიროების მონაცემების პირდაპირ გადაცემის კონსტრუქტორების მეშვეობით.

როგორ მუშაობს:

  • InheritedWidget ინახავს მონაცემებს, რომლებიც შეიძლება საჭირო იყოს შთამომავლებისთვის.
  • შთამომავლები შეუძლიათ მიაწვდიან ამ მონაცემებს of(context) მეთოდით.
  • როდესაც მონაცემები InheritedWidget-ში იცვლება, Flutter ავტომატურად ახლებდა ამ მონაცემებზე დამოკიდებულ ვიჯეტებს.

გამოყენების მაგალითი:

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-ში.