【发布时间】:2021-04-10 20:51:57
【问题描述】:
我需要生成需要扩展和非扩展磁贴的列表
这是我的代码
return ListView.builder(
itemCount: categoryAllListData.length,
itemBuilder: (BuildContext context, int index) => EntryItem(
categoryAllListData[index],
));
class EntryItem extends StatelessWidget {
// const CategoryAllListModel(this.name,this.catlistt);
// final Catlist catlist;
final CategoryAllListModel categoryAllListModel;
const EntryItem(this.categoryAllListModel);
// This function recursively creates the multi-level list rows.
Widget _buildTiles(CategoryAllListModel root) {
if (root.catlist.isEmpty) {
return ListTile(
title: Text(root.name),
);
}
return ExpansionTile(
key: PageStorageKey<CategoryAllListModel>(root),
title: Text(root.name),
children: root.catlist.map<Widget>(_buildTiles).toList(),
);
}
@override
Widget build(BuildContext context) {
return _buildTiles(categoryAllListModel);
}
}
但我在儿童中遇到错误:root.catlist.map(_buildTiles).toList(),
无法将参数类型“Widget Function(CategoryAllListModel)”分配给参数类型“Widget Function(Catlist)”.dartargument_type_not_assignable
class CategoryAllListModel {
int id;
String name;
List<Catlist> catlist;
CategoryAllListModel({
this.id,
this.name,
this.catlist,
});
CategoryAllListModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
name = json['name'];
//price = json['price'].toDouble();
catlist = List<Catlist>.from(
json["children_categories"].map((x) => Catlist.fromJson(x)));
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['name'] = this.name;
data['children_categories'] =
List<dynamic>.from(catlist.map((x) => x.toJson()));
return data;
}
}
class Catlist {
int id;
String name;
Catlist({this.id, this.name});
Catlist.fromJson(Map<String, dynamic> json) {
id = json['id'];
name = json['name'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['name'] = this.name;
return data;
}
}
【问题讨论】:
标签: flutter