Error: Could not find the correct Provider<Store1> above this Profile Widget
This happens because you used a BuildContext
that does not include the provider
of your choice. There are a few common scenarios:
- You added a new provider in your main.dart
and performed a hot-reload.
To fix, perform a hot-restart.
- The provider you are trying to read is in a different route.
Providers are "scoped". So if you insert of provider inside a route, then
other routes will not be able to access that provider.
- You used a BuildContext
that is an ancestor of the provider you are trying to read.
Make sure that Profile is under your MultiProvider/Provider<Store1>.
This usually happens when you are creating a provider and trying to read it immediately.
For example, instead of:
`
Widget build(BuildContext context) {
return Provider<Example>(
create: (_) => Example(),
// Will throw a ProviderNotFoundError, because context
is associated
// to the widget that is the parent of Provider<Example>
child: Text(context.watch<Example>()),
),
}
`
consider using builder
like so:
`
Widget build(BuildContext context) {
return Provider<Example>(
create: (_) => Example(),
// we use builder
to obtain a new BuildContext
that has access to the provider
builder: (context) {
// No longer throws
return Text(context.watch<Example>()),
}
),
}
`
If none of these solutions work, consider asking for help on StackOverflow:
도대체 이유가 뭔가요...
stroe1은 되는데 store2는 왜 안되죠?