首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未找到省道列表项目

未找到省道列表项目
EN

Stack Overflow用户
提问于 2021-08-21 20:05:46
回答 1查看 140关注 0票数 0

我创建了一个抗原(元素)的列表,并将一些抗原添加到另一个列表中,即选择。如果列表项包含在选定的列表中,我希望列表项的颜色为红色。但即使在打印抗原存在的选定项目时,它也不会显示颜色的变化。

代码语言:javascript
复制
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,
            ),
          );
        },
      ),
    ));
  }
}

我打印了这份清单,如果它存在或不存在

代码语言:javascript
复制
print(controller.selectedAntigens);
print((controller.selectedAntigens.contains(item)) ? '1' : '0');

输出:

代码语言:javascript
复制
[{name: STRAW DUST, value: 123}]
0

模型代码

代码语言:javascript
复制
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},
  ];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-21 20:10:31

因为在抗原模型中可能没有相等的操作符。

您可以这样做,或者创建一个包含抗原名称的列表。

代码语言:javascript
复制
List<String> _namesList = controller.selectedAntigens.map((e)=>e['name']).toList();

print(_namesList.contains(item['name']) ? '1' : '0'); //=> "1";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68876389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档