在flutter中执行provider Riverpod

问题描述 投票:0回答:1

如何从 flutter 的 main() 运行监视提供者 Riverpod 注释? Riverpod 需要上下文引用,但我在 Riverpod 文档中看不到它, 尝试覆盖providerscope

Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
  await Firebase.initializeApp();
}

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );

  FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
 
  runApp(
    
   const ProviderScope(
 --- HERE 
   child: MyApp()),
  );
}

class MyApp extends ConsumerWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final appRouter = ref.watch(appRouterProvider);

    return MaterialApp.router(
      routerConfig: appRouter,
      debugShowCheckedModeBanner: false,
      theme: AppTheme().getTheme(),
      title: 'Push APP',
    );
  }
}


riverpod riverpod-annotation
1个回答
0
投票

这是不可能的,因为在使用提供程序之前,您必须在

ProviderScope
中初始化并包装小部件。如果你想初始化使用 RiverPod 的东西,你应该在主小部件(第一个小部件)
MyApp
.

编写代码
© www.soinside.com 2019 - 2024. All rights reserved.