【发布时间】:2021-11-05 01:24:24
【问题描述】:
我正在制作一个颤振应用程序,我需要一个身份验证提供程序来处理诸如保存用户数据、刷新令牌等功能等身份验证事务。
我希望在我的其他提供程序中使用此提供程序来检查用户是否在尝试进行 api 调用之前登录,我偶然发现了 ProxyProvider 和 ChangeNotifierProxyProvider,但我不断收到此错误“错误:找不到此 _InheritedProviderScope 小部件上方的正确 Provider”。
这是我的 main.dart 的一部分:
MultiProvider(
providers: [
ChangeNotifierProvider(
create: (ctx) {
AuthProvider auth = AuthProvider();
auth.init();
},
lazy: false,
),
ChangeNotifierProxyProvider<AuthProvider, BookingProvider>(
create: (ctx) => BookingProvider(),
update: (ctx, authProvider, bookingProvider) => bookingProvider!..updateAuth(authProvider),
),
],
child: MaterialApp(...
在这里我得到了那个错误:
Widget build(BuildContext context) {
BookingProvider bookingProvider = Provider.of<BookingProvider>(context);
return Container();
}
此屏幕位于 main.dart 中的 MultiProvider 小部件下,在使用 ChangeNotifierProxyProvider 之前,我对此提供程序没有任何问题。
也许这不是最好的解决方案,因为我还是新手,所以如果有更好的方法,请告诉我。
【问题讨论】: