React antd tree树组件 - 父子节点没有自动关联情况下 - 显示半选、全选状态以及实现父子节点互动

实现的效果图如下:
在这里插入图片描述
如Ant Design Vue 中所示,并没有提供获取半选节点的方法,当设置checked和checkStrictly时,父子节点也不再自动关联了
在这里插入图片描述

前提:从后端可以获取的数据分别是完整的树型数据、所有选中的节点数据(一个数组、同时包含 父节点和子节点),具体的大概数据可以看下面
树形结构(二重),parId是-1则表示是父节点数据:
在这里插入图片描述
这是返回的已选中节点的数组:
在这里插入图片描述
下面是具体的代码:

state = {
   
  treeData: [], // 树形数据
  checkedKeys: [],
  checkable: false, // 因为我的页面是树型结构在页面右侧,根据左侧显示具体(看自己需求)
  loading: true,
  halfChecked: [], // 半选
  checked: [] // 全选
};

render() {
   
const {
    checkedKeys, treeData, checkable, halfChecked, checked, loading } = this.state
<Tree
  ref={
   r => this.treeRef = r}
  className={
   styles.menuTree}
  blockNode
  showLine
  // selectable={false}
  checkable={
   checkable}
  defaultExpandAll
  // checkedKeys={checkedKeys}
  checkedKeys={
   {
   
    checked,
    halfChecked
  }}
  checkStrictly
  onCheck={
   ({
     checked: ck, halfChecked: hc, ...oth }, {
     checked, node: {
     props: {
     dataRef } } }) => {
   
    // 选择
    if (checked && dataRef.id
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值