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

Flutter中RxList<String>匹配ID失败的排查与解决

问题:成员ID匹配失败导致文本颜色不生效的解决办法

你定义的代码如下:

RxList<String> selectedMemberList = <String>[].obs;
selectedMemberList = [180,160,150]

你希望ID存在于selectedMemberList时文本显示红色,编写的判断逻辑:

if (selectedMemberList.contains('180')) {
  // 文本红色
} else {
  // 文本黑色
}

但文本始终显示黑色,核心原因是类型不匹配:

  • 你声明的selectedMemberList是RxList<String>(字符串列表),但赋值的元素是整数180、160、150,而非字符串'180'。
  • 用contains('180')(字符串)去查找整数列表,自然匹配失败。

两种解决方式:

  1. 保持列表为字符串类型,赋值时把元素转为字符串,同时给列表加.obs(RxList的规范要求):
RxList<String> selectedMemberList = <String>[].obs;
selectedMemberList = ['180','160','150'].obs;

此时selectedMemberList.contains('180')就能正常匹配。

  1. 改为整数类型列表(如果你的ID本身就是整数):
RxList<int> selectedMemberList = <int>[].obs;
selectedMemberList = [180,160,150].obs;

判断时去掉引号,用整数匹配:

if (selectedMemberList.contains(180)) {
  // 文本红色
} else {
  // 文本黑色
}

内容的提问来源于stack exchange,提问作者Vrusti Patel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 00:05:34