Это код, который я использую
class Wrapper extends StatelessWidget {
@override
Widget build(BuildContext context) {
final user = Provider.of<User>(context);
if (user == null) {
return LoginPage();
} else {
return MyHomePage();
}
}
}
и пользовательский файл имеет
class User {
final String uid;
User({this.uid});
}
И я получаю эту ошибку:
Следующее исключение ProviderNotFoundException было сгенерировано при построении оболочки (грязный): Ошибка: не удалось найти правильный поставщик над этим виджетом оболочки. Вероятно, это происходит из-за того, что вы использовали BuildContext
, который не включает поставщика по вашему выбору. Есть несколько распространенных сценариев:
- Провайдер, которого вы пытаетесь прочитать, находится на другом маршруте. Провайдеры ограничены. Поэтому, если вы вставите поставщика внутри маршрута, другие маршруты не смогут получить доступ к этому поставщику.
- Вы использовали
BuildContext
, который является предком провайдера, которого вы пытаетесь прочитать. Убедитесь, что Wrapper находится под вашим MultiProvider / Provider. Обычно это происходит, когда вы создаете провайдера и пытаетесь сразу его прочитать.