Flutter贷款列表status过滤失效问题求助
解决Flutter贷款列表过滤问题
你的代码未生效的核心原因是:where() 方法仅返回一个可迭代对象(Iterable),不会直接修改原列表,且你没有将过滤后的结果赋值并转换为List返回。
修正后的代码:
@override Future<List?> fetchLoanList() async { final response = await httpServices.getRequest('mobileAppGetIcbsid?icbsid=001-0000055'); final jsonData = json.decode(response.data); var map = Map<String, dynamic>.from(jsonData); var userData = UserModel.fromJson(map); // 过滤status为"Closed"的条目,并转换为List final filteredLoans = userData.loan?.where((element) => element.status == "Closed").toList(); return filteredLoans; }
补充说明:
where()是惰性求值方法,不会立即遍历列表,必须调用toList()才能生成实际的过滤后列表;- 若想避免返回null(当原贷款列表为空时),可将返回语句改为:
return filteredLoans ?? [];
此时即使原列表为null,也会返回一个空列表,保证返回值始终为List类型。
内容的提问来源于stack exchange,提问作者Kneelon
相关产品推荐
相关产品推荐

