Flutter 提供程序错误:找不到正确的提供程序<;颜色>;在这个MyApp小部件上面
我不明白为什么下面的代码会产生错误? 根据我的说法,提供者是MaterialApp的祖先,它应该工作吗?我错过了什么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: [
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。这实际上是我第一次尝试的,只是修改了我的问题的代码,使其更具可读性,所以这不是这里的问题!