Could not find the correct Provider - Flutter
You need a builder
bridge between ChangeNotifierProvider
and Scaffold
.
Provider package already has it's own builder called Consumer
, you can use it like:
ChangeNotifierProvider<MySchedule>( create: (context) => MySchedule(), child: Consumer<MySchedule>( builder: (context, provider, child) => Scaffold(....,
Check this link: https://pub.dev/packages/provider#reading-a-value
edit: builder
is now create
.
According to the latest version of the Provider package, the builder()
method of ChangeNotifierProvider
was changed to create()
.So editing Esen Mehmet's version, this will work instead:
ChangeNotifierProvider( create: (context) => MySchedule(), //change builder to create child: Consumer<MySchedule>( builder: (context, provider, child) => Scaffold(....,
You can use provider as Below,class HomeApp extends StatefulWidget { @override State<StatefulWidget> createState() { // TODO: implement createState return HomeAppState(); }}class HomeAppState extends State<HomeApp>{ final _user = UserModel(); @override Widget build(BuildContext context) { return MultiProvider( providers: [ ChangeNotifierProvider<LoginNotifier>( create: (BuildContext context) { return LoginNotifier(); }), ChangeNotifierProvider<UserModel>.value(value: _user), ], child: MaterialApp( debugShowCheckedModeBanner: false, theme: Provider.of<ThemeModel>(context).currentTheme, home: HomeScreen(), )); }}