在此MyApp小部件上方找不到正确的提供程序

时间:2020-09-27 06:16:02

标签: flutter dart flutter-provider

我正在尝试在MaterialApp中使用提供程序。我有一个MultiProvider的父母,MaterialApp

当我尝试访问提供程序时,出现以下错误:

错误:在此MyApp小部件上方找不到正确的提供程序

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        ChangeNotifierProvider<RoutesProvider>(create: (context) => RoutesProvider()),
        ...
      ],
        child: MaterialApp(
          title: 'coolApp',
          // key: Provider.of<RoutesProvider>(context, listen: false).mainKey,
          initialRoute: '/home',
          routes: <String, WidgetBuilder>{...routes},
        ),
    );
  }
}

1 个答案:

答案 0 :(得分:0)

按照以下结构,ChangeNotifierProvider.value是分配提供商的正确方法

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        ChangeNotifierProvider.value(value: RoutesProvider()),
        //.....
      ],
      child: MaterialApp(