如何解决使用静态方法初始化 FutureProviders
我正在使用 FutureProvider
并尝试使用返回 ChangeNotifier
的静态未来方法初始化提供程序。看起来像这样。
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return FutureProvider(
create: (_) => TabProvider.initTabProvider('Tasmania'),catchError: (_,e) => print(e.toString()),child: MaterialApp(
debugShowCheckedModeBanner: false,home: RootWidget(),),);
}
}
class TabProvider with ChangeNotifier {
TabItem homeTab = TabItem.explore;
TabItem currentTab;
States exploreStateCache;
TabProvider(this.exploreStateCache) {
currentTab = homeTab;
}
static Future<TabProvider> initTabProvider(String initialState) async {
States stateCache =
await HighlineDbProvider.getActiveStateCache(initialState);
return TabProvider(stateCache);
}
}
*请注意,States
不应与 State
混淆,States 指的是一个国家的州。
然后我打电话
TabProvider tabProvider = Provider.of<TabProvider>(context,listen: false);
在我的根小部件中并得到错误
Error: Could not find the correct Provider<TabProvider> above this RootWidget Widget
FutureProvider
是不是不允许我们这样使用它,还是我做错了?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。