首页 > 解决方案 > 如何根据项目索引增加列表变量?

问题描述

我收到一个错误:类型int不是List<dynamic>按添加时函数结果类型的子类型

final itemcount = [];

Widget buildItem(BuildContext context, DocumentSnapshot document, int index) {
  return Container(
    child: Flatbutton(
      child:Text("add"),
      onpressed:(){
        itemcount[index]=itemcount[index]+1,
      }
    )
  );
}




             StreamBuilder<QuerySnapshot>(
                stream: Firestore.instance
                    .collection('products')
                    .where('category', isEqualTo: 'ourstore')
                    .snapshots(),
                builder: (context, snapshot) {
                  if (!snapshot.hasData) {
                    return Center(
                      child: Icon(Icons.photo_library),
                    );
                  } else {
                    return snapshot.data.documents.isEmpty
                        ? Center(child: null)
                        : GridView.builder(
                            itemBuilder: (context, index) => buildItem(
                                context,
                                snapshot.data.documents[index],
                                index),
                            itemCount: snapshot.data.documents.length,
                            physics: NeverScrollableScrollPhysics(),
                            gridDelegate:
                                SliverGridDelegateWithFixedCrossAxisCount(
                                    // childAspectRatio: 3/4,
                                    crossAxisSpacing: 10,
                                    mainAxisSpacing: 5,
                                    crossAxisCount: 2),
                            shrinkWrap: true,
                            scrollDirection: Axis.vertical,
                          );
                  }
                },
              ),

标签: flutter

解决方案


修复了错误

必须将列表中每个项目的值设置为零

下面的代码:

 List<int> itemcount = List<int>();

Widget buildItem(
      BuildContext context, DocumentSnapshot document, int index) {


    itemcount.add(0);

return Container(
    child: Flatbutton(
      child:Text("add"),
      onpressed:(){

       setState(() {
       itemcount[index]++;

       });
      }
    )
  );

}

推荐阅读