当前位置: 首页 > 知识库问答 >
问题:

前端 - 在vue3+ts中,如何设置el-tree组件每次只能选一个,选第二个则取消第一个的选中的状态?

魏凯捷
2024-04-09

点击当前勾选框check_id中值被替换成当前选中的值,但怎么取消上一个的选中状态

<el-tree            ref="treeRef"            :data="dataTree"            :props="defaultProps"            show-checkbox            default-expand-all            :check-strictly="true"            :default-checked-keys="check_id中只有一个值,但怎么取消上一个的选中状态"            @check-change="handleNodeClick"          />
let check_id: any[] = [];const handleNodeClick = (  checkedKeys: any,  isCheck: boolean,  changeNode: any) => {  if (isCheck) {    if (check_id && check_id.length >= 1) {        check_id.splice(0, check_id.length);        check_id.push(checkedKeys.id);    } else {      check_id.push(checkedKeys.id);    }  } else {    check_id.forEach((item, i) => {      if (item.id === checkedKeys.value) {        check_id.splice(i, 1);      }    });  }};

共有1个答案

黄宏大
2024-04-09

check_id应该定义为const check_id = ref<any[]>([])啊,普通变量是没有响应式的

 类似资料:
  • 问题内容: 我有一个生成的DataFrame,如下所示: 结果如下: 如您所见,DataFrame按升序排列,然后按降序排列。 我想选择每个组的第一行,即 从小时== 0的组中选择(0,cat26,30.9) 从小时= 1的组中选择(1,cat67,28.5) 从小时== 2的组中选择(2,cat56,39.6) 等等 因此,所需的输出将是: 能够选择每个组的前N行也可能很方便。 任何帮助都将受到

  • 问题内容: 在C#中将是这样的: Linq-To-Sql将其转换为以下T-SQL代码: 但是它与MySQL不兼容。 问题答案: 当我写 有用。在其他RDBMS中,IIRC这样的语句是不可能的,因为不属于任何组合键的不属于分组键的列就被引用了。 这种“怪癖”的行为与我想要的行为非常接近。所以我用它来获得想要的结果:

  • 问题内容: 如标题所示,我想选择以分组的每组行的第一行GROUP BY。 具体来说,如果我有一个purchases看起来像这样的表: 我的输出: 我想查询每个人id最大的购买金额(total)customer。像这样的东西: Expected Output: 问题答案: 在PostgreSQL中,这通常更简单,更快捷(下面将进行更多性能优化): 或更短(如果不太清楚),输出列的序号为: 如果tot

  • 问题内容: 我有这个SQL查询: 这将导致类似于以下的输出: 我想每个Foo仅保留第一行,而忽略其余的行。 我怎么做? 问题答案:

  • 问题内容: 我只需要选择给定datetime变量的月份的第一天。 我知道使用这种代码非常容易: 但这不是很优雅,也可能不是很快。 有一个更好的方法吗?我正在使用SQL Server 2008。 问题答案: