错误:在此小部件上方找不到正确的提供者

时间:2019-05-01 10:49:36

标签: flutter provider drawer

此屏幕是“抽屉”屏幕,该屏幕使用auth bloc以便向用户提供信息并使他能够注销。 尽管我使用了正确的提供程序

,但出现了此错误
ViewParent

我想知道为什么无法使用Provider.of(context)的问题,调用它时找不到它。

ViewGroup

这是我给抽屉打电话的地方

The following ProviderNotFoundError was thrown building Pets4allDrawer(dirty):
I/flutter (32011): Error: Could not find the correct Provider<AuthService> above this Pets4allDrawer Widget
I/flutter (32011): To fix, please:
I/flutter (32011):   * Ensure the Provider<AuthService> is an ancestor to this Pets4allDrawer Widget
I/flutter (32011):   * Provide types to Provider<AuthService>
I/flutter (32011):   * Provide types to Consumer<AuthService>
I/flutter (32011):   * Provide types to Provider.of<AuthService>()
I/flutter (32011):   * Ensure the correct `context` is being used. 

2 个答案:

答案 0 :(得分:3)

检查您是否已在某些祖先小部件中注册了商品。

 return MultiProvider(
    providers: [
      ChangeNotifierProvider(
        builder: (_) => FirebaseNotificationNotifier(),
      ),],

答案 1 :(得分:0)

如果您使用多个提供程序,您应该将它们添加到 main.dart。

return MultiProvider(
  providers: [
    ChangeNotifierProvider.value(
      value: Car(),
    ),
    ChangeNotifierProvider.value(
      value: Van(),
    ),
    ChangeNotifierProvider.value(
      value: Bus(),
    ),
  ],
  child: MaterialApp(
    title: 'MyApp',
    home: MyHome(),
  ),
);