antd Tree选中的时候需要获取父元素id

博主在做权限树的时候,遇到过这样一个问题。只要子元素有一个元素被选中,后端需要我把选中节点的父元素也传过去。但是antd Tree默认的checkedKeys中只有子元素全部选中的时候才会把父元素选中,checkedKeys才会包含父元素的值。
解决方法:在onCheck事件里,有两个参数checkedKeys(你选中的元素), info(包含选中子节点的信息),在info里就有他父节点的信息,可以通过info.halfCheckedKeys来获取。然后把父节点元素和子节点放在一个数组,传给后端就好了。
上代码😁

 // 选中
    onCheck = (checkedKeys, info) => {
        let checkedKey = checkedKeys.concat(info.halfCheckedKeys); // 可以在info中获取父元素值
        this.setState({
            checkedKeys: checkedKeys, // 不包括父元素
            checkedKey: checkedKey // 包括父元素
        });

    };
    
    <Tree
       checkable
        onExpand={this.onExpand}
        expandedKeys={this.state.expandedKeys}
        autoExpandParent={this.state.autoExpandParent}
        onCheck={this.onCheck}
        checkedKeys={this.state.checkedKeys}
    // defaultCheckedKeys={defaultListChecked}
    >
        {this.renderTreeNodes(resourcesList)}
    </Tree>
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值