【发布时间】:2021-05-05 06:25:05
【问题描述】:
我正在尝试使用 if/else、分组列表、地图等动态创建 3 层列表,但没有成功,因此我尝试使用 .where 方法过滤/显示列表。
问题 如何使用 .where 打印基于第二个字段(courseheader)的值的字段(subjectName)的值
itemCount: allCoursesList.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(
'${allCoursesList[index].subjectName.where((index) => index.courseheader != 'no')}'),
subtitle: ListTile(
title: Text('${allCoursesList.where((index) => index.courseheader != 'no')}'),
subtitle: ListTile(
title: Text('${allCoursesList.where((index) => index.courseSection != 'no')}'),
),
),
);
}
期望的输出
Biology
BIOL 101
-B101-1
-B101-2
-B101-3
BIOL 102
-B102-1
-B102-2
……
Chemistry
CHEM 101
-C101-1
….
表格列表
[Courses{subjectId: 1, subjectName: Biology, courseName: BIOL 101, courseSection: B101-1, subjectHeader: yes, courseHeader: yes, section: yes,}, Courses{subjectId: 1, subjectName: Biology, courseName: BIOL 101, courseSection: B101-2, subjectHeader: no, courseHeader: no, section: yes,}, Courses{subjectId: 1, subjectName: Biology, courseName: BIOL 101, courseSection: B101-3, subjectHeader: no, courseHeader: no, section: yes,}, Courses{subjectId: 1, subjectName: Biology, courseName: BIOL 102, courseSection: B102-1, subjectHeader: no, courseHeader: yes, section: yes,}, Courses{subjectId: 1, subjectName: Biology, courseName: BIOL 102, courseSection: B102-2, subjectHeader: no, courseHeader: no, section: yes,}, Courses{subjectId: 1, subjectName: Biology, courseName: BIOL 103, courseSection: B103-1, subjectHeader: no, courseHeader: yes, section: yes,}, Courses{subjectId: 1, subjectName: Biology, courseName: BIOL 104, courseSection: B104-1, subjectHeader: no, courseHeader: yes, section: yes,}
【问题讨论】:
-
在构建 ListView 之前需要过滤数据
-
我创建了一种从表中提取数据的方法。当我只过滤两个标题时 - 子对象 - 在标题字段中 - 只返回数据的子集。