怎么改成双向的
这个可以把选中的值存成一个数组,勾选和取消都只操作这个数组,上面树结构的勾选展示也是判断这个数组里有没有这个值
然后下面的已选也是跟据这个数组过滤出存在的值渲染出来,勾选和取消一样操作这个数组
这种自己写一大堆麻烦很麻烦,要双向监听,还不如用 el 这种框架
看你的描述,逻辑应该是,点击一个框,反选。
let checkedIds = [] ;
//点击的时候,
let currentId ;
if(checkedIds.includes(currentId )){
checkedIds = checkedIds .filter(c=> c !== currentId) ;
}else{
checkedIds.push(currentId);
}
上面是不考虑父子关系的。
当然,你还要考虑父子节点的联系。