我想将数据库中的所有json数据显示到表中,但是我很困惑json的解决方案是纯文本。我对使用Map不太了解,因为这会使我的代码出错
FutureBuilder(
future: UserController.getActivity(_selectedUser),
builder: (context, snapshot) {
if (snapshot.hasData) {
var item = snapshot.data;
Map<String, dynamic> activity = item[snapshot]['activity'];
//print(snapshot.data.toString());
print(activity);
return Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Table(
defaultColumnWidth: FixedColumnWidth(150.0),
border: TableBorder(
horizontalInside: BorderSide(
color: Colors.black,
style: BorderStyle.solid,
width: 1.0,
),
verticalInside: BorderSide(
color: Colors.black,
style: BorderStyle.solid,
width: 1.0,
),
),
children: [
TableRow(children: [
TableCell(
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceAround,
children: <Widget>[
new Text(snapshot.data["project"]),
],
),
)
])
],
)
],
);
} else {
return Center(
child: Text("No data displayed"),
);
}
},
),
当我尝试使用出现错误 _FutureBuilderState#71363的代码时: 预期值为'int'类型的值,但具有类型为'AsyncSnapshot'
答案 0 :(得分:0)
此行中的错误:
Map<String, dynamic> activity = item[snapshot]['activity'];
您正在尝试使用AsyncSnapshot作为对象的键。您只需要在位置或文字键上使用数字,这取决于您作为响应的Json的结构。