Api 为什么';我的FutureBuilder没有返回任何数据吗?
我有一个返回数据列表的api。 检索数据时,我使用FutureBuilder显示数据列表。 但由于某些原因,它不会显示我的数据,即使当我打印响应时,我可以看到我得到了正确的响应 这是我得到的错误:Api 为什么';我的FutureBuilder没有返回任何数据吗?,api,flutter,Api,Flutter,我有一个返回数据列表的api。 检索数据时,我使用FutureBuilder显示数据列表。 但由于某些原因,它不会显示我的数据,即使当我打印响应时,我可以看到我得到了正确的响应 这是我得到的错误: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════ I/flutter (11846): The following assertion was thr
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (11846): The following assertion was thrown building FutureBuilder<List<BasicDiskInfo>>(dirty, state:
I/flutter (11846): _FutureBuilderState<List<BasicDiskInfo>>#a0948):
I/flutter (11846): A build function returned null.
I/flutter (11846): The offending widget is: FutureBuilder<List<BasicDiskInfo>>
I/flutter (11846): Build functions must never return null. To return an empty space that causes the building widget to
I/flutter (11846): fill available room, return "new Container()". To return an empty space that takes as little room as
I/flutter (11846): possible, return "new Container(width: 0.0, height: 0.0)".
══╡ WIDGETS库捕获到异常╞═══════════════════════════════════════════════════════════
I/flatter(11846):以下断言被抛出building FutureBuilder(肮脏,状态:
I/颤振(11846):_FutureBuilderState#a0948):
I/flatter(11846):构建函数返回null。
I/flatter(11846):有问题的小部件是:FutureBuilder
I/flatter(11846):构建函数不能返回null。返回导致building小部件
I/flatter(11846):填充可用空间,返回“newcontainer()”。返回一个尽可能少占用空间的空白空间
I/颤振(11846):可能,返回“新容器(宽度:0.0,高度:0.0)”。
我不知道该怎么办。帮帮我
原料药
static Future fetchAllDisks()异步{
最终响应=等待http.get('link');
如果(response.statusCode==200){
Iterable list=json.decode(response.body);
var disks=新列表();
disks=list.map((model)=>BasicDiskInfo.fromJson(model)).toList();
打印(磁盘[0]);
返回磁盘;
}否则{
抛出异常(“加载磁盘失败”);
}
}
页面
类磁盘扩展无状态小部件{
@凌驾
小部件构建(构建上下文){
回归未来建设者(
future:API.fetchAllDisks(),
生成器:(BuildContext上下文,异步快照){
交换机(快照.连接状态){
案例连接状态。无:
案例连接状态。正在等待:
返回新的循环ProgressIndicator();
违约:
if(snapshot.hasError){
返回新文本('Error:${snapshot.Error}');
}否则{
打印(快照数据);
createListView(上下文、快照);
}
}
},
);
}
小部件createListView(构建上下文上下文,异步快照快照){
列表磁盘=snapshot.data;
返回新的ListView.builder(
itemCount:disks.length,
itemBuilder:(上下文,索引){
返回手势检测器(
onTap:(){
导航器。推(
上下文
材料路线(
生成器:(上下文)=>SpecificDiskPage(
diskId:disks[index].id,
),
));
},
孩子:卡片(
子:列(
儿童:[
划船(
儿童:[
文本(磁盘[index].name),
垫片(),
文本(磁盘[index].driveType),
垫片(),
文本(磁盘[index].driveFormat),
],
),
划船(
儿童:[
文本(磁盘[索引].totalSize.toString()),
垫片(),
文本(磁盘[index].totalFreeSpace.toString()),
],
),
],
),
),
);
},
);
}
}
BasicDiskInfo
类基本信息{
int-id;
字符串名;
字符串驱动类型;
字符串格式;
整数总大小;
整数总自由空间;
BasicDiskInfo(
{this.id,
这个名字,
这是一种驾驶类型,
这个.driveFormat,
这个,总尺寸,
这是(totalFreeSpace});
factory BasicDiskInfo.fromJson(映射json){
返回基本信息(
id:json['id'],
名称:json['name'],
driveType:json['driveType'],
driveFormat:json['driveFormat'],
totalSize:json['totalSize'],
totalFreeSpace:json['totalFreeSpace']);
}
}
FutureBuilder应该返回一个包含api数据的列表。您的生成方法中有错误。您没有返回
createListView(上下文、快照)代码>在默认情况下。生成方法中有错误。您没有返回createListView(上下文、快照)代码>在默认情况下。我认为如果函数返回小部件,我就不必返回函数。但这起作用了。谢谢,欢迎光临!使用builder时必须返回小部件我认为如果函数返回小部件,我就不必返回函数。但这起作用了。谢谢,欢迎光临!使用生成器时必须返回小部件