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.