el-tree默认选中的BUG(选中父元素下的几个节点,却直接选中了所有)

新手上路,请多包涵

复现:给el-tree赋值后,使用default-checked-keys赋值

          <el-tree
            ref="systemTree"
            show-checkbox
            :data="systemTree"
            node-key="id"
            :props="defaultProps"
            :default-checked-keys="hasRights"
            :default-expanded-keys="expandRights"
          />

当给一个父元素设置默认选中了除了一项之外的所有项(比如有三项,默认设置选中两项),它会直接选中所有,我查了issues是很久前的BUG了,但是没找到解决办法,有人踩过坑吗?
PS:check-strictly属性可以避免这个BUG,但是这个项目要求要能联动..

阅读 3k
2 个回答

不使用default-checked-keys, 拿到需要勾选的数据后, 手动执行方法

this.$refs.tree.setCheckedKeys(ids, true)

setCheckedKeys 第二个参数设置为true 可以避免这个问题

新手上路,请多包涵

我也出现这个问题了,我在展开的回调监听里面 用了

this.$nextTick(()=>{
 if(this.click){
  this.$refs.tree.setCheckedKeys(ids)
}
})

然后监听onclick和onMouseDown事件,在这里面吧这个this.click设置成false

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题