从子窗口小部件访问提供程序类时遇到问题。
这是我的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
类,我想在MyInventoryScreen
中访问它。我的小部件树有些东西看起来像这样。
-MaterialApp
-LoadingScreen
-HomeScreen
-MyUsersScreen
-MyInventoryScreen
-LoginScreen
我尝试访问MyInventoryScreen
中的InventoryProvider,但这显示了巨大的错误。
var inventoryProvider = Provider.of<InvetoryProvider>(context);
是否有可能与Provider一起深入渗透?如果包装MyInventoryScreen
,则可以正常工作。
答案 0 :(得分:0)
如果您希望在应用程序的所有屏幕上都可以访问提供程序,则需要将该提供程序放在MaterialApp
小部件上方。