treeSelect节点搜索

antd中treeSelect的filterTreeNode用法--节点搜索

以下图为例,树形搜索展开后,有以下几个选项,如果我想要搜索其中“产品中心”,那直接搜索关键词‘产品’即可
在这里插入图片描述

我搜索后并未显示我想要的结果,而是为空
在这里插入图片描述

这就需要用到 filterTreeNode这个属性了。
官方介绍:是否根据输入项进行筛选,默认用 treeNodeFilterProp 的值作为要筛选的 TreeNode 的属性值;boolean | function(inputValue: string, treeNode: TreeNode) (函数需要返回 bool 值)
添加filterTreeNode属性,

	filterTreeNode={(inputValue, treeNode) => {
        return treeNode?.name.indexOf(inputValue) > -1;
        }}
        //这里name要看treeNode节点的结构是什么样了,可以是title,value

结果展示
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想要实现在antd的TreeSelect组件中进行搜索,可以通过以下步骤来实现: 1. 在TreeSelect组件中添加一个Search组件,用于输入搜索的关键字。 2. 在TreeSelect组件的onChange事件中,判断是否有搜索关键字,如果有,则对树形结构进行遍历,找出所有匹配的节点,并将这些节点的key存储到一个数组中。 3. 将存储匹配节点key的数组作为TreeSelect组件的value,这样就可以显示出所有匹配的节点。 4. 在TreeSelect组件的onSearch事件中,将搜索关键字存储到state中,以便在onChange事件中使用。 以下是一个简单的代码示例: ```jsx import React, { useState } from 'react'; import { TreeSelect, Input } from 'antd'; const treeData = [ { title: 'Node A', value: 'a', children: [ { title: 'Child A1', value: 'a1', }, { title: 'Child A2', value: 'a2', }, ], }, { title: 'Node B', value: 'b', children: [ { title: 'Child B1', value: 'b1', }, { title: 'Child B2', value: 'b2', }, ], }, ]; const TreeSelectWithSearch = () => { const [searchKeyword, setSearchKeyword] = useState(''); const [matchedKeys, setMatchedKeys] = useState([]); const traverseTree = (node, callback) => { callback(node); if (node.children) { node.children.forEach(child => { traverseTree(child, callback); }); } }; const handleSearch = value => { setSearchKeyword(value); }; const handleChange = value => { setMatchedKeys([]); if (searchKeyword !== '') { const matchedKeys = []; traverseTree({ children: treeData }, node => { if (node.title.toLowerCase().indexOf(searchKeyword.toLowerCase()) !== -1) { matchedKeys.push(node.value); } }); setMatchedKeys(matchedKeys); } }; return ( <TreeSelect value={matchedKeys} onChange={handleChange} treeData={treeData} showSearch searchPlaceholder="Search" filterTreeNode={() => true} dropdownStyle={{ maxHeight: 400, overflow: 'auto' }} > <Input.Search onChange={e => handleSearch(e.target.value)} /> </TreeSelect> ); }; export default TreeSelectWithSearch; ``` 在这个例子中,我们使用了useState钩子来保存搜索关键字和匹配节点的key。在handleSearch函数中,我们将搜索关键字存储到state中。在handleChange函数中,我们遍历整个树形结构,找出所有匹配的节点,并将这些节点的key存储到matchedKeys数组中。最后,在TreeSelect组件中,我们将matchedKeys数组作为value属性,这样就可以显示出所有匹配的节点。注意,在filterTreeNode属性中,我们返回了true,这样就可以显示所有节点,而不仅仅是匹配的节点

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值