当我推送另一个屏幕时如何在 Flutter 中正确重用 Provider
How to properly reuse a Provider in Flutter when i push another screen
我遇到的问题与此 中描述的完全相同,但我想在推送屏幕中重复使用该提供程序。例如:如果我有 ChangeNotifierProvider 包裹 screenA,然后我使用 Navigator.of(context).push... 从 screenA 推送到 screenB,我想访问 screenB 上的提供者而不必传递它作为论据。上个问题的回答我做不到
解决方案:将提供程序移动到 MaterialApp 上方,之后您可以从应用程序的屏幕 A、B、C 等访问提供程序,而无需将其作为参数传递
void main() => runApp(
ChangeNotifierProvider(
create: (_) => YourProvider(),
child: MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData.light(),
home: Home()
),
),
);
我遇到的问题与此
解决方案:将提供程序移动到 MaterialApp 上方,之后您可以从应用程序的屏幕 A、B、C 等访问提供程序,而无需将其作为参数传递
void main() => runApp(
ChangeNotifierProvider(
create: (_) => YourProvider(),
child: MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData.light(),
home: Home()
),
),
);