Flutter 在祖先中使用提供程序
我正在使用provider包来管理flatter中的状态 这是main.dart:Flutter 在祖先中使用提供程序,flutter,dart,provider,Flutter,Dart,Provider,我正在使用provider包来管理flatter中的状态 这是main.dart: class _MyAppState extends State<MyApp> { @override Widget build(BuildContext context) { return ChangeNotifierProvider<Application>( builder: (_) => Application(), child: Mat
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<Application>(
builder: (_) => Application(),
child: MaterialApp(
debugShowCheckedModeBanner: false,
home: HomeScreen(),
initialRoute: AppRoutes.home
),
);
}
}
class\u MyAppState扩展状态{
@凌驾
小部件构建(构建上下文){
返回ChangeNotifierProvider(
生成器:()=>Application(),
孩子:MaterialApp(
debugShowCheckedModeBanner:false,
主页:主屏幕(),
初始路径:AppRoutes.home
),
);
}
}
现在,如何使用main.dart中的应用程序提供程序?我试着做final app=Provider.of(context.app)代码>内置函数。但是,它会引发以下错误:
Error: Could not find the correct Provider<Application> above this MyApp Widget
To fix, please:
* Ensure the Provider<Application> is an ancestor to this MyApp Widget
* Provide types to Provider<Application>
* Provide types to Consumer<Application>
* Provide types to Provider.of<Application>()
* Always use package imports. Ex: `import 'package:my_app/my_code.dart';
* Ensure the correct `context` is being used.
错误:在此MyApp小部件上方找不到正确的提供程序
若要修复,请执行以下操作:
*确保提供程序是此MyApp小部件的祖先
*向提供程序提供类型
*向消费者提供类型
*为Provider.of()提供类型
*始终使用包导入。例如:`import'包:my_app/my_code.dart';
*确保使用了正确的“上下文”。
我知道子级可以访问提供程序,但是否也可以在祖先/main.dart中访问?我需要管理应用程序范围的状态。这就是消费者在这里的目的
您可以使用它执行以下操作:
小部件构建(构建上下文){
返回提供者(
生成器:()=>Whatever(),
儿童:消费者(
建筑商:(uu,随便什么,uuu){
//todo:随便用`
},
),
);
}
如何调用提供程序方法?例如,通常我会->Provider.of(context.getApp()代码>。在这种情况下我该怎么办?