Sobes.tech
Junior — Middle

Flutter'da InheritedWidget sinfi nima ekanligini va qanday ishlatilishini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

InheritedWidget Flutter'da, widgetlar daraxtida o'z farzandlariga ma'lumotlarni o'tkazish imkonini beradigan asosiy sinfdir. U holat yoki konfiguratsiyani farzand widgetlar bilan samarali bo'lishini ta'minlaydi, konstruktorlar orqali aniq ma'lumotlarni o'tkazish shart emas.

Qanday ishlaydi:

  • InheritedWidget farzandlar uchun kerak bo'lishi mumkin bo'lgan ma'lumotlarni saqlaydi.
  • Farzandlar bu ma'lumotlarga of(context) metodidan foydalanib kirishlari mumkin.
  • InheritedWidgetdagi ma'lumotlar o'zgarganda, Flutter avtomatik ravishda bu ma'lumotlarga bog'liq bo'lgan widgetlarni qayta chizadi.

Foydalanish misoli:

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

Shu tarzda, InheritedWidget Flutterda reaktiv va samarali holat boshqaruv tizimlarini qurish uchun asos bo'lib xizmat qiladi.