从子部件访问 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
小部件上方。
我在从子窗口小部件访问提供程序 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
小部件上方。