你好我有一个问题在这里,我想使一个搜索功能在一个列表中,我试图按照导师在互联网上,我改变了数据列表检索API中的API,但发生了如下错误。
final List<Data> allData = [];
// final List<Map<String, dynamic>> _allUsers = [];
// List<Map<String, dynamic>> _foundUsers = [];
List<Data> _foundData = [];
@override
initState() {
_foundData = allData;
super.initState();
}
void _runFilter(String enteredKeyword) {
List<Data> results = [];
if (enteredKeyword.isEmpty) {
results = allData;
} else {
results = allData
.where((user) =>
user['name'].toLowerCase().contains(enteredKeyword.toLowerCase()))
.toList();
}
setState(() {
_foundData = results;
});
}
TextField(
onChanged: (value) => _runFilter(value),
decoration: const InputDecoration(
labelText: 'Search', suffixIcon: Icon(Icons.search)),
),
1条答案
按热度按时间ars1skjm1#
上面你实际上做的是找到Map〈String,dynamic〉.这不是你想要的.你的变量是“user”,所以我推断你的数据结构可能是一个UID-Map〈String,dynamic〉.所以,如果我是对的,数据实际上是一个List〈String〈Map〈String,dynamic〉〉,那么你必须更深一层.
为了给予您了解其结构,下面是您可以使用的代码片段:
如果这样做没有帮助,请为您的数据添加数据结构,以便能够获得更具体的信息。