如何在表格颤动中显示json数据

时间:2019-07-05 03:00:41

标签: flutter dart flutter-web

我想将数据库中的所有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'

1 个答案:

答案 0 :(得分:0)

此行中的错误:

Map<String, dynamic> activity = item[snapshot]['activity'];

您正在尝试使用AsyncSnapshot作为对象的键。您只需要在位置或文字键上使用数字,这取决于您作为响应的Json的结构。