iview tree 组件 如何在一次选择后二次选择的时候清楚掉第一次选择的数据

页面点击按钮会弹出一个页面,tree 组件渲染出树形结构的数据,绑定了on-check-change 事件,当用户有选择的时候关闭当前页面。但是当第二次点击按钮的时候,弹出树形结构后,默认显示的还是第一次选中的数据。怎么样可以在第二次选择的时候清除第一次选择的数据,呈现全部未选中的状态?查阅了相关api,发现this.$refs.tree.getCheckedNodes()这个方法获取的是当前选中的节点的数组

  <Tree :data="treeData"
          ref="tree"
          show-checkbox
          @on-check-change="checkChange()"
  >
 </Tree>
阅读 8.6k
2 个回答
新手上路,请多包涵

无解,重新把组装一次data

新手上路,请多包涵
function changeChecked(node, parent, type) {
    node.checked = type == 0 ? true : false;
    if(node.children && node.children.length) {
        node.children.forEach(item => {
            clearChecked(item, node, type)
        })
    }
}

1.treeData设置checked属性

treeData.forEach(item => {
    changeChecked(item, null, 0)
})

2.清空checked

treeData.forEach(item => {
    changeChecked(item, null, 1)
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题