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

取消勾选复选框时selectedItemsList未正常返回全部列表的问题排查

问题根因

  • 你在Array.filter的回调中给this.selectedItemsList赋值的操作是无效的:filter方法最终会将回调返回true的元素组成新数组,赋值给this.selectedItemsList,会直接覆盖你在else分支里赋的完整列表值
  • 回调函数在isChecked为false的分支没有返回值,默认返回undefined会被filter判定为false,对应元素都会被过滤掉

修复方案

你要实现的「有勾选时返回勾选列表,无勾选时返回完整列表」可以调整为以下逻辑:

changeSelection() {
  this.checkedIDs = []
  // 先单独过滤出所有勾选的条目
  const checkedList = this.DisplayProductList.filter(value => value.isChecked === true)
  // 存在勾选内容就用勾选列表,全取消勾选就用完整的ProductData
  this.selectedItemsList = checkedList.length ? checkedList : this.ProductData

  this.router.navigate(['pipeline/cluster/policies'])
  this.sendclusteridApi()
}

逻辑说明

  • 先单独执行过滤逻辑,保证filter只做列表过滤的单一功能,避免在回调中修改外部变量
  • 后续判断选中列表的长度即可覆盖你需要的两种场景,逻辑清晰也不会出现赋值覆盖的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:09:04