Sobes.tech
Junior — Middle

Kunt u het werkingsprincipe van InheritedWidget in Flutter uitleggen?

sobes.tech AI

Antwoord van AI

InheritedWidget in Flutter wordt gebruikt om gegevens naar beneden door de widget-boom te sturen zonder ze expliciet door de constructeurs van elke kind-widget door te geven. Dit stelt kind-widgets in staat om toegang te krijgen tot gedeelde gegevens en automatisch te worden bijgewerkt wanneer deze veranderen.

Werking principe:

  • InheritedWidget slaat gegevens op die toegankelijk moeten zijn voor afstammelingen.
  • Afstammelingen krijgen toegang tot deze gegevens via de methode of(context).
  • Als de gegevens in InheritedWidget veranderen, informeert Flutter alle widgets die ervan afhankelijk zijn en worden ze opnieuw opgebouwd.

Voorbeeld:

class MyData extends InheritedWidget {
  final int counter;

  MyData({required this.counter, required Widget child}) : super(child: child);

  static MyData? of(BuildContext context) {
    return context.dependOnInheritedWidgetOfExactType<MyData>();
  }

  @override
  bool updateShouldNotify(MyData oldWidget) {
    return oldWidget.counter != counter;
  }
}

// Gebruik:
// In de ouder widget, wikkel de boom in MyData
// In de kind-widgets, verkrijg de gegevens via MyData.of(context)?.counter

Op deze manier helpt InheritedWidget om de staat en gegevens efficiënt te delen tussen widgets zonder overmatige parameteroverdracht.