Не удается создать нового поставщика флаттера

#flutter #flutter-provider

Вопрос:

Привет, я пытаюсь добавить нового поставщика на корневом уровне моего приложения. Однако функция создания нового поставщика (в данном случае более легко представленная Поставщиком типа int) не вызывается, как я вижу в своей консоли.

 class MyApp extends StatelessWidget {

  final List<SingleChildWidget> providers = [
    Provider<DynamicLinkService>(
      create: (context) {
        print("Dynamic Link Service Provider gets built");
        return DynamicLinkService();
      },
    ),
    Provider<int>(create: (context) {
      print("Int Provider gets built");
      return 1;
    }),
  ];

  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: providers,
      builder: (ctx, _) {
        return MaterialApp(
          theme: themeData(context),
          debugShowCheckedModeBanner: false,
          title: 'Flutter Demo',
          onGenerateRoute: (settings) {
            return getPageRoute(settings);
          },
          home: StartUpView(),
          navigatorKey: locator<NavigationService>().navigatorKey,
        );
      },
    );
  }
}
 

Вывод на консоль:

 Dynamic Link Service Provider gets built
 

Комментарии:

1. Попробуйте определить их непосредственно в функции сборки. В вашем примере они создаются при MyApp создании, а не при build вызове функции.

2. @StefanGaller Спасибо за ваш ответ, я только что попробовал. К сожалению, это не работает

3. По умолчанию экземпляры поставщиков создаются лениво. Если вы хотите, чтобы они были созданы сразу же, попробуйте использовать lazy: false