Junior — Middle
What is the role and application of InheritedWidget in Flutter for passing data through the widget tree?
sobes.tech AI
Answer from AI
InheritedWidget in Flutter is used for efficient data transfer down the widget tree without the need to explicitly pass them through constructors of each widget. This allows child widgets to access shared data or state that may change.
Main points:
InheritedWidgetstores data and notifies dependent widgets when it changes.- Child widgets access data via the
of(context)method. - Used for implementing state management patterns, such as
Theme,MediaQuery.
Example usage:
class MyData extends InheritedWidget {
final int value;
MyData({required this.value, required Widget child}) : super(child: child);
static MyData? of(BuildContext context) {
return context.dependOnInheritedWidgetOfExactType<MyData>();
}
@override
bool updateShouldNotify(MyData oldWidget) => value != oldWidget.value;
}
// In the widget below, you can get the value like:
// final data = MyData.of(context)?.value;
Thus, InheritedWidget simplifies access to data deep in the tree without cumbersome parameter passing.