flutter - 我可以在 MultiProvider 中使用 Future Provider 吗?但它可以从 API 解决它们
问题描述
我正在尝试使用颤振Provider 包,并且我有一个 API,我想在其中获取 Transport Type 的数据和路线的标题(它是 Marshes 类)。我决定使用Future Provider ans,据我所知,如果我想使用 mu;tiproviders,我需要在 widhet 树顶部的主失败中使用MultiProvider 。我做了与文档中描述的相同的操作,但现在出现错误:“在构建 Home(dirty) 时抛出了以下 ProviderNotFoundException:错误:在此 Home Widget 上方找不到正确的 Provider<List>”
所以问题是:我可以在 Multiproviders 中使用 futureproviders 吗?正如我在下面的代码中所做的那样。
我真的不明白我的错误在哪里
主文件:
Widget build(BuildContext context) {
return MultiProvider(
providers: [
FutureProvider(
create: (context) => transportService.fetchTranspot(),
initialData: [],
catchError: (context, error) {
print(error.toString());
},
),
FutureProvider(
create: (context) => transportService.fetchMarshes(),
catchError: (context, error) {
print(error.toString());
},
initialData: [],
),
],
child: MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Home(),
),
运输类型的另一个:
List<TransportType> transport = Provider.of<List<TransportType>>(context);
return Scaffold(
appBar: AppBar(title: Text('Employees'),
),
body: (transport == null)
? Center(child: CircularProgressIndicator(),)
: ListView.builder(
itemCount: transport.length,
itemBuilder: (context,index){
return ListTile(
title: Text(transport[index].ttTitle),
沼泽也一样。我想把它做成一个列表
final int ttId;
final TransportService transportService = TransportService();
EmployeePage({@required this.ttId});
@override
Widget build(BuildContext context) {
List<Marshes> marsh = Provider.of<List<Marshes>>(context);
return Scaffold(
appBar: AppBar(title: Text('Employees'),
),
body: (marsh == null)
? Center(child: CircularProgressIndicator(),)
: ListView.builder(
itemCount: marsh.length,
itemBuilder: (context,index){
return ListTile(
title: Text(marsh[index].mrTitle),
解决方案
您没有指定FutureBuilder
s 的类型,例如:
providers: [
FutureProvider(
应该:
providers: [
FutureProvider<List<TransportType>>(
推荐阅读
- python-3.x - pyspark 等效于 postgres regexp_substr 无法提取值
- firebase - 在firebase控制台中按日期过滤firestore查询
- plot - 朱莉娅:当我有一个情节时,如何找到最佳拟合曲线/方程?
- javascript - 允许我为 cypress 测试创建随机电子邮件的功能
- tcp - Hazelcast tcp-ip config REST API 未启用。未知协议:I^@^@
- python - 如何使用 OpenPyXL 遍历 Excel 表中的所有行?
- r - R 中的 tolower(txt) 非字符参数错误(用于文本挖掘)
- node.js - 尽管安装并需要,但找不到模块“firebase-tools”的声明文件
- reactjs - MakeStyles (Material UI) 将样式应用到子元素
- ios - 按自定义时间间隔对对象数组进行分组