flutter - 未找到飞镖列表项
问题描述
我创建了一个抗原(元素)映射列表,并将一些抗原添加到另一个列表中,即选择。如果列表项包含在所选列表中,我希望列表项的颜色为红色。但即使在打印存在抗原的选定项目时,它也不会显示颜色变化。
import 'package:allerpath_app_new/controller/mulit_allergy_profile_controller.dart';
import 'package:allerpath_app_new/model/blood_antigens.dart';
import 'package:flutter/material.dart';
import 'package:get/get_core/src/get_main.dart';
import 'package:get/get_instance/src/extension_instance.dart';
class TestingMAP extends StatelessWidget {
TestingMAP({Key? key}) : super(key: key);
final controller = Get.put(MultiProfile());
final BloodAntigens antigen = BloodAntigens();
@override
Widget build(BuildContext context) {
List<dynamic> _namesList =
controller.selectedAntigens.map((e) => e['name']).toList();
return SafeArea(
child: Scaffold(
body: ListView.builder(
itemCount: antigen.inhalantPanel.length,
itemBuilder: (context, index) {
var item = antigen.inhalantPanel[index];
return Text(
item['name'],
style: TextStyle(
color: (_namesList.contains(item)) ? Colors.red : Colors.black,
),
);
},
),
));
}
}
我打印了列表,如果它存在与否
print(controller.selectedAntigens);
print((controller.selectedAntigens.contains(item)) ? '1' : '0');
输出:
[{name: STRAW DUST, value: 123}]
0
型号代码
List<Map<String, dynamic>> inhalantPanel = [
{'name': 'HOUSE DUST', 'value': 0.35},
{'name': 'MIXED MITES', 'value': 0.35},
{'name': 'COCKROACH', 'value': 0.35},
{'name': 'STRAW DUST', 'value': 0.35},
{'name': 'COTTON', 'value': 0.35},
{'name': 'JUTE', 'value': 0.35},
];
解决方案
因为您的抗原模型中可能没有相等运算符。
例如,您可以这样做,或者创建一个包含抗原名称的列表。
List<String> _namesList = controller.selectedAntigens.map((e)=>e['name']).toList();
print(_namesList.contains(item['name']) ? '1' : '0'); //=> "1";
推荐阅读
- javascript - 反应将数组添加到localStorage
- c# - System.Data.OleDb.OleDbException:“标准表达式中的数据类型不匹配。” C# 错误
- python - 在 Ubuntu 18.04 和 python3.8 上出现错误“pip install mysqlclient”
- javascript - 使用 jquery 自动刷新图像
- php - 在 Laravel Mysql 项目中连接被拒绝,同时进行工匠迁移
- react-native - 服务器上的 React-native google/facebook 登录身份验证
- entity-framework-core - 实体框架核心 - 将参数传递给 Where IN 子句原始查询
- angular - 从 Angular 2 中的日期范围的 Firebase 获取数据
- webgl - 纹理映射问题以及如何在 WebGL 中更改纹理映射位置
- jquery - Datatables_scrollBody 上的覆盖滚动条出错