Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在祖先中使用提供程序_Flutter_Dart_Provider - Fatal编程技术网

Flutter 在祖先中使用提供程序

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

我正在使用provider包来管理flatter中的状态

这是main.dart:

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()。在这种情况下我该怎么办?