InheritedWidget
Pass data down the tree without prop drilling
InheritedWidget passes data down the widget tree without manually threading it through every level.
Passing data through many widget layers (prop drilling) is verbose and fragile. InheritedWidget solves this.
// Prop drilling: pass data through every level
App(user: user)
-> HomePage(user: user)
-> Sidebar(user: user)
-> Avatar(user: user) // finally uses it!
// InheritedWidget: access from anywhere below
App(child: UserProvider(
user: user,
child: HomePage() // no prop needed
))
// Avatar can access user directlyWidget Tree
App
InheritedWidget
HomePage
Sidebar
Avatar.of(context)
Content
Header.of(context)
Provider-- skips layers -->Consumer
provides data
reads data