Flutter中检测JSON API数据含指定字符串以修改边框颜色
解决方案:检测JSON数组中任意位置的"DONE"字段以修改边框颜色
你当前的代码仅判断数组最后一条数据的desc字段是否为"DONE",要实现任意位置存在"DONE"就触发颜色变更,可以使用Dart的any()方法遍历数组,只要有一个元素满足条件就返回true。
修改后的代码如下:
border: Border( left: BorderSide( color: model.data.any((item) => item.desc == 'DONE') ? greenColor : redColor, width: 3.0, ), ),
代码说明
model.data.any((item) => item.desc == 'DONE'):遍历model.data数组中的每一项,只要有任意一个元素的desc等于"DONE",就返回true,此时边框设为greenColor;否则返回false,边框用redColor。- 这个逻辑完全覆盖了你需要的场景——无论"DONE"出现在数组的开头、中间还是末尾,都能被检测到。
额外提示
如果存在数组为空的情况,可以添加空值判断避免报错:
border: Border( left: BorderSide( color: model.data.isNotEmpty && model.data.any((item) => item.desc == 'DONE') ? greenColor : redColor, width: 3.0, ), ),
内容的提问来源于stack exchange,提问作者JasSum
相关产品推荐
相关产品推荐

