从子部件访问 Provider 时出现问题

Provblem with acessing Provider from a child widget

我在从子窗口小部件访问提供程序 class 时遇到问题。

这是我的 Main.dart 文件。

...
home: MultiProvider(
        providers: [
          Provider<UserProvider>(
            create: (context) => UserProvider(),
          ),
          Provider<InvetoryProvider>(
            create: (context) => InvetoryProvider(),
          ),
        ],
        child: StreamBuilder(
          stream: FirebaseAuth.instance.onAuthStateChanged,
          builder: (context, userSnapshot) {
            if (userSnapshot.hasData) return LoadingWidget(userSnapshot);
            return Login();
          },
        ),
      ),
...

我在 main.dart 中初始化了 InvetoryProvider class 我想在 MyInventoryScreen 中访问它。我的小部件树看起来像这样。

-MaterialApp 
 -LoadingScreen
  -HomeScreen
   -MyUsersScreen
   -MyInventoryScreen
 -LoginScreen

我试图在 MyInventoryScreen 中访问 InventoryProvider,但它显示了巨大的错误。

 var inventoryProvider = Provider.of<InvetoryProvider>(context);

Provider 有可能渗透到那么深吗?如果 wrap MyInventoryScreen.

它可以工作

如果您希望在应用的所有屏幕中都可以访问某个提供程序,则需要将该提供程序置于 MaterialApp 小部件上方。