You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 05:20:43