代码之家  ›  专栏  ›  技术社区  ›  DolDurma

在MultiProvider中使用StreamingSharedPreferences的颤振

  •  1
  • DolDurma  · 技术社区  · 6 年前

    这很容易实现 StreamingSharedPreferences 使用 Provider

    Future<void> main() async {
      final preferences = await StreamingSharedPreferences.instance;
      final settings = MyAppSettings(preferences);
    
      runApp(
        Provider<MyAppSettings>.value(value: settings, child: MyApp()),
      );
    }
    

    供应商 在应用中,例如:

    runApp(
      MultiProvider(providers: [
        Provider(builder: (_) => database.userTableDao),
        Provider(builder: (_) => database.postsTableDao),
        Provider(builder: (_) => database.postsTableDao),
        Provider(
          builder: (_) => ApiService.create(),
          dispose: (_, ApiService) => service.client.dispose(),
        )
      ], child: OKToast(child: MyHomePage())),
    );
    

    简化共享首选项

    MultiProvider(providers: [
      ...
      Provider<ApplicationSettings>.value(value: settings),
      ...
    ], child: OKToast(child: MyHomePage())),
    
    0 回复  |  直到 5 年前
        1
  •  0
  •   DolDurma    5 年前

    在这段代码中,我使用了 StreamingSharedPreferences.instance 进入之内 main 函数,然后我在里面加了 MultiProvider ,例如:

    final settings = ApplicationSettings( await StreamingSharedPreferences.instance );
    
    MultiProvider(providers: [
      ...
      Provider( builder: (_) => settings ),
      ...
    ], child: OKToast(child: MyHomePage())),