未定义名称“duplicateItems”。
尝试将名称更正为已定义的名称,或定义名称。
我已经将其修复到另一个仍然遇到同样问题的问题。
class view_problem extends StatefulWidget {
@override
State<view_problem> createState() => _view_problemState();
}
class _view_problemState extends State<view_problem> {
List<problemModel> problemlist = [];
StreamController _streamController = StreamController();
Future getAllProblem() async {
problemlist = await problemcontrollers().getProblem();
_streamController.sink.add(problemlist);
}
@override
void initState() {
// TODO: implement initState
Timer.periodic(Duration(seconds: 1), (timer) {
getAllProblem();
});
super.initState();
}
void _filterSearch(String query) {
setState(() {
problemlist = duplicateItems
.where((item) => item.toLowerCase().contains(query.toLowerCase()))
.toList();
});
}
您尚未在函数甚至全局变量中定义重复项。您必须在使用它之前定义它。天气重复项目是一个字符串、整数或其他类型代码不知道,所以我们必须提到定义它。在你的情况下,我猜它是一个字符串列表,因为它是一个搜索函数,所以我的答案是相应的。
更新答案:这里我还进行了更改,以便当搜索查询中有空格时,它仍然会为您提供有效的结果。
void _filterSearch(String query) {
if (query.isNotEmpty) {
List<ApptUsersModel> dummyListData = [];
_dummySearchList.forEach((element) {
var fullName = (element.firstname!+element.lastname!).trim();
if (fullName.toLowerCase().contains(query.toLowerCase().replaceAll(' ', '').trim())) {
dummyListData.add(element);
}
});
Utility.log("Length of dummyListData is --> ${dummyListData.length}");
setState(() {
_searchResultList.clear();
_searchResultList.addAll(dummyListData);
Utility.log(
"Length of _searchResultList in if is --> ${_searchResultList.length}");
});
return;
}
}