antd TreeSelect树选择的使用

1.antd官网TreeSelect组件:

https://ant.design/components/tree-select-cn/

2.运行效果图如下:

3.组件引用及数据渲染实现:

(1)组件的导入如下图:

(2)组件的渲染:

下图3-2-1为渲染组件:(相关引用均在下图做了说明)

图3-2-1

图3-2-2为渲染父节点:


图3-2-2

图3-2-3为渲染一级子节点:

图3-2-3

图3-2-4为渲染二级子节点:

图3-2-4

(3)调用方法onChange和onSelect说明:

通过断点的方式发现onSelect方法是先于onChange方法执行的,那在两个方法中是如何获取选中节点的值的呢?看下图:

说明:从上图发现onSelect方法是在e.props里面去获取当前被选中节点的值。而onChange方法是extra.triggerNode.props中去获取当前选中节点的值。

参考:

https://ant.design/components/tree-select-cn/#components-tree-select-demo-checkable

您可以通过在 `TreeSelect` 组件中设置 `treeCheckStrictly` 属性为 true,并在 `onChange` 事件中对选中的节点进行处理,以实现选择显示父节点的功能。具体实现方式如下: ```jsx import { TreeSelect } from 'antd'; const treeData = [ { title: 'Node1', value: '0-0', children: [ { title: 'Child Node1', value: '0-0-0', }, { title: 'Child Node2', value: '0-0-1', }, ], }, { title: 'Node2', value: '0-1', children: [ { title: 'Child Node3', value: '0-1-0', }, { title: 'Child Node4', value: '0-1-1', }, ], }, ]; function TreeSelectWithParent(props) { const { onChange, ...restProps } = props; const handleTreeSelectChange = (value, label, extra) => { // 如果选中的节点是父节点,则将其子节点也一并选中 if (extra.checkedNodes.some(node => node.isLeaf === false)) { const checkedValues = extra.checkedNodes .filter(node => node.isLeaf) .map(node => node.value); onChange(checkedValues, label, extra); } else { onChange(value, label, extra); } }; return ( <TreeSelect treeData={treeData} treeCheckable={true} treeCheckStrictly={true} onChange={handleTreeSelectChange} {...restProps} /> ); } ``` 在上述代码中,我们定义了一个名为 `TreeSelectWithParent` 的组件,该组件通过设置 `treeCheckStrictly` 属性为 true,实现了只能勾选叶子节点的功能。同时,在 `onChange` 事件中,我们对选中的节点进行了处理,如果选中的节点是父节点,则将其子节点也一并选中。最后,我们将处理后的值传递给原本的 `onChange` 事件处理函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值