Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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 颤振:在FutureBuilder上找不到提供程序_Flutter_Provider_Flutter Futurebuilder - Fatal编程技术网

Flutter 颤振:在FutureBuilder上找不到提供程序

Flutter 颤振:在FutureBuilder上找不到提供程序,flutter,provider,flutter-futurebuilder,Flutter,Provider,Flutter Futurebuilder,我试图导航到一个屏幕,其中取决于3个因素: 如果应用程序以前运行过或没有运行过 如果用户是否为空 是否验证了电子邮件 import'package:client/providers/auth_provider.dart'; 进口“包装:颤振/材料.省道”; 导入“包:firebase_auth/firebase_auth.dart”; 导入“包:provider/provider.dart”; 导入“package:shared_preferences/shared_preferences.d

我试图导航到一个屏幕,其中取决于3个因素:

  • 如果应用程序以前运行过或没有运行过
  • 如果用户是否为空
  • 是否验证了电子邮件
  • import'package:client/providers/auth_provider.dart';
    进口“包装:颤振/材料.省道”;
    导入“包:firebase_auth/firebase_auth.dart”;
    导入“包:provider/provider.dart”;
    导入“package:shared_preferences/shared_preferences.dart”;
    导入“../screens/home_screen.dart”;
    导入“../screens/login_screen.dart”;
    类包装器扩展了StatefulWidget{
    @凌驾
    _WrapperState createState()=>\u WrapperState();
    }
    类_包装器状态扩展状态{
    FirebaseAuth auth=FirebaseAuth.instance;
    @凌驾
    void initState(){
    super.initState();
    }
    @凌驾
    小部件构建(BuildContext ctx){
    回归未来建设者(
    future:hasAlreadyStarted(),
    生成器:(ctx,快照){
    返回提供程序。of(ctx)!=null&&
    snapshot.data==true&&
    AuthProvider().isEmailVerified
    ?主屏幕()
    :LoginScreen();
    });
    }
    Future hasAlreadyStarted()异步{
    SharedReferences prefs=等待SharedReferences.getInstance();
    试一试{
    if(prefs.getBool(“hasRun”)==null){
    等待AuthProvider()。注销();
    设置状态(){
    prefs.setBool(“hasRun”,true);
    });
    返回true;
    }否则{
    返回true;
    }
    }捕获(错误){
    设置状态(){
    prefs.setBool(“hasRun”,null);
    });
    返回false;
    }
    }
    
    }
    我只需要用StreamProvider包装整个MaterialApp

    我只需要用StreamProvider包装整个MaterialApp