Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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 提供程序错误:找不到正确的提供程序<;颜色>;在这个MyApp小部件上面_Flutter - Fatal编程技术网

Flutter 提供程序错误:找不到正确的提供程序<;颜色>;在这个MyApp小部件上面

Flutter 提供程序错误:找不到正确的提供程序<;颜色>;在这个MyApp小部件上面,flutter,Flutter,我不明白为什么下面的代码会产生错误? 根据我的说法,提供者是MaterialApp的祖先,它应该工作吗?我错过了什么 class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MultiProvider( providers: [

我不明白为什么下面的代码会产生错误? 根据我的说法,提供者是MaterialApp的祖先,它应该工作吗?我错过了什么

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        new Provider<Color>(create: (_) => Colors.amber)
      ],
      child: MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(
          primarySwatch: Provider.of<Color>(context),
        ),
        home: MyHomePage(title: 'Flutter Demo Home Page'),
      )
    );
  }
}
类MyApp扩展了无状态小部件{
//此小部件是应用程序的根。
@凌驾
小部件构建(构建上下文){
回程多供应商(
供应商:[
新提供程序(创建:(\u)=>Colors.amber)
],
孩子:MaterialApp(
标题:“颤振演示”,
主题:主题数据(
primarySwatch:Provider.of(上下文),
),
主页:MyHomePage(标题:“颤振演示主页”),
)
);
}
}

提供程序最初在生成方法中。您无法访问使用提供程序值,因为提供程序初始化了上下文,但您尝试在同一位置使用provider.of(context)。如果使用其他状态(视图),则应使用它

示例代码:


我认为您无法从现有的flift类创建
提供程序,在本例中,
Color
。我将创建另一个包含
Color
属性的类,并从中创建一个
Provider
。@BenjaminS。这实际上是我第一次尝试的,只是修改了我的问题的代码,使其更具可读性,所以这不是这里的问题!