1

我正在尝试获取 List<dynamic'> _list 但由于我将颤振升级到 2.0,我不得不将我的代码更改为 _list(QuerySnapshot<Map<String, dynamic>> 快照)。该类型没有长度,或者 elementAt 像普通的 List<dynamic'> 类型。可以转换吗?

我的代码:

List _list(QuerySnapshot<Map<String, dynamic>> snapshot) {
                              return snapshot.docs
                                  .map((doc) => new Brand(
                                        doc.data()['brandId'].toString(),
                                      ))
                                  .toList();
                            }

稍后在我的代码中,我需要使用一些字段:

return StaggeredGridView.countBuilder(
                              itemCount: _list.length,
                              itemBuilder: (BuildContext context, int index) {
                                Brand brand = _list.elementAt(index) as Brand;
                                return InkWell(
                                  onTap: () {
                                    Navigator.of(context).pushNamed('/Brand',
                                        arguments: new RouteArgument(
                                            id: _list[index].id)

错误消息:错误:未为类型“列表函数(QuerySnapshot<Map<String, dynamic>>)”定义运算符“[]”

欢迎任何想法,提前谢谢!

4

1 回答 1

0

截至目前,您_list的定义为 aFunction返回 aList而不是 aList本身。

So, in order to use it, you should firstly properly call it with the necessary parameter.

Like this,

List myList = _list(snapshot);  // I assume you have access to a snapshot variable
return StaggeredGridView.countBuilder(
  itemCount: myList .length,
  itemBuilder: (BuildContext context, int index) {
  Brand brand = myList.elementAt(index) as Brand;
  return InkWell(
    onTap: () {
      Navigator.of(context).pushNamed('/Brand',
        arguments: new RouteArgument(
        id: myList[index].id
      )
  ..... 
于 2021-05-25T03:25:26.680 回答