主要

    void main() async {
          WidgetsFlutterBinding.ensureInitialized();
          await Firebase.initializeApp();
          runApp(MultiProvider(
            providers: [
              ChangeNotifierProvider.value(value: ProductProvider.initialize()),
            ], child: Builder(builder: _ProductProvider),
          ));
        }
class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  Widget rootPage = Login(); //Pagina de inicio
  Future<Widget> estadoDelUsuario() async =>
      // ignore: await_only_futures
      await FirebaseAuth.instance.currentUser == null ? Login() : Inicio();
  // se pregunta si se esta loggeado y dependiendo de eso se muestra la pagina de inicio correspondiente

  @override
  void initState() {
    //de los primeros metodos que se inician
    // ignore: todo
    // TODO: implement initState
    super.initState();
    estadoDelUsuario().then((Widget page) {
      setState(() {
        rootPage = page; //se muestra la pagina obtenida de la pregunta
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    child:
    MaterialApp(
      theme: ThemeData(primaryColor: Colors.white),
      debugShowCheckedModeBanner: false,
      home: rootPage, //Pagina inicio
      routes: buildAppRoutes(), //Rutas
    );
  }
}
我知道错误在这里:
     ChangeNotifierProvider.value(value: ProductProvider.initialize()),
     ], child: Builder(builder: _ProductProvider),
但是我不知道该放些什么。由于MaterialApp出现故障。

最佳答案

有不止一个问题。其中之一是有关MultiProvider的使用。您需要正确设置MultiProvider。

      MultiProvider( //                                     <--- MultiProvider
            providers: [
              ChangeNotifierProvider<MyModel>(create: (context) => MyModel()),
              ChangeNotifierProvider<AnotherModel>(create: (context) => AnotherModel()),
            ],
请从here阅读更多信息,我建议您仔细执行以下步骤。

关于android - MultiProvider必须指定子 'package:provider/src/inherited_provider.dart':断言失败: 'builder != null || child != null',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64539050/

10-11 14:29