Junior — Middle
Können Sie das Funktionsprinzip von InheritedWidget in Flutter erklären?
sobes.tech KI
Antwort von AI
InheritedWidget in Flutter wird verwendet, um Daten nach unten im Widget-Baum zu übertragen, ohne sie explizit durch die Konstruktoren jedes Kind-Widgets zu übergeben. Dies ermöglicht es Kind-Widgets, auf gemeinsame Daten zuzugreifen und sich automatisch zu aktualisieren, wenn sich diese ändern.
Funktionsprinzip:
- InheritedWidget speichert Daten, die für Nachkommen zugänglich sein sollen.
- Nachkommen greifen auf diese Daten über die Methode
of(context)zu. - Wenn sich die Daten im InheritedWidget ändern, benachrichtigt Flutter alle Widgets, die davon abhängen, und sie werden neu aufgebaut.
Beispiel:
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;
}
}
// Verwendung:
// Im Eltern-Widget den Baum in MyData einwickeln
// In den Kind-Widgets Daten über MyData.of(context)?.counter abrufen
Auf diese Weise hilft InheritedWidget, den Zustand und die Daten effizient zwischen Widgets zu teilen, ohne übermäßige Parameterübergabe.