Flutter 可以在main.dart flatter中调用提供程序函数吗

Flutter 可以在main.dart flatter中调用提供程序函数吗,flutter,dart,Flutter,Dart,飘飘然, 我正在调用provider函数从main.dart中的数据库加载数据,我看到main.dart在不断地调用它们,所以我添加了bool来检查它们是否调用或是否正在加载以停止连续调用,之后我开始担心。这边行吗?更好的办法是什么?我不想把它添加到第一页的initstate中,就好像用户在SharedReferences中有详细信息一样,我等待并发送令牌以获取不同的数据 这是main.dart文件中的调用部分 检查用户是否在SharedReferences中有详细信息 如果用户在Shared

飘飘然, 我正在调用provider函数从main.dart中的数据库加载数据,我看到main.dart在不断地调用它们,所以我添加了bool来检查它们是否调用或是否正在加载以停止连续调用,之后我开始担心。这边行吗?更好的办法是什么?我不想把它添加到第一页的initstate中,就好像用户在SharedReferences中有详细信息一样,我等待并发送令牌以获取不同的数据

这是main.dart文件中的调用部分

  • 检查用户是否在SharedReferences中有详细信息
  • 如果用户在SharedReferences中有详细信息,则加载聊天
  • 如果以前未连接,则连接到插座
  • 如果用户有详细信息,则开始加载,并在第一步中使isLoadingUserForMain=false,以便在加载并获得响应之前无法调用

  • 请告诉我你的意见谢谢看,做你想做的事情最好的方法是

  • 制作一个启动屏幕或加载的中间屏幕
  • 将所有异步任务推送到该小部件上
  • 你可以在那里处理任何事情

  • 不建议在main函数中执行异步任务。所以你需要制作材料应用程序来完成任务。

    看起来做你想做的事情的最好方法是

  • 制作一个启动屏幕或加载的中间屏幕
  • 将所有异步任务推送到该小部件上
  • 你可以在那里处理任何事情

  • 不建议在main函数中执行异步任务。因此,您需要制作Material应用程序来完成任务。

    我会有一个类似@Akash的启动屏幕,但我会在您的提供者初始化时调用这些方法。例如,假设您在应用程序顶部创建这样的提供商:

    runApp(MultiProvider(providers: [
      Provider<DatabaseService>(
        create: (_) => YourService(),
        lazy: false,
      ),
      ], 
      child: MyApp()));
    
    runApp(多提供程序(提供程序:[
    提供者(
    创建:()=>YourService(),
    懒惰:错,
    ),
    ], 
    child:MyApp());
    
    问题中的init逻辑将存在于
    YourService
    的构造函数中


    现在,您可以有一个
    userDetails
    流,您的初始屏幕将监听该流,一旦它发出详细信息,就转到相应的屏幕。

    我会有一个类似@Akash的初始屏幕,但我会在您的提供者初始化时调用这些方法。例如,假设您在应用程序顶部创建这样的提供商:

    runApp(MultiProvider(providers: [
      Provider<DatabaseService>(
        create: (_) => YourService(),
        lazy: false,
      ),
      ], 
      child: MyApp()));
    
    runApp(多提供程序(提供程序:[
    提供者(
    创建:()=>YourService(),
    懒惰:错,
    ),
    ], 
    child:MyApp());
    
    问题中的init逻辑将存在于
    YourService
    的构造函数中


    现在,您可以有一个
    userDetails
    流,您的启动屏幕将收听该流,一旦它发出详细信息,就转到相应的屏幕。

    不建议在问题中包含您的代码图片。请将代码粘贴进去,并在每一端用三个反勾(`)将其包装起来。谢谢不建议在问题中包含代码的图片。请将代码粘贴进去,并在每一端用三个反勾(`)将其包装起来。谢谢