ProFormCascader在模糊搜索功能上,当用户选中某个节点后,不立即清除搜索提示,而是保持当前筛选的状态,继续展示与所选节点相关的下拉选项供进一步筛选
时间: 2024-09-23 15:11:36 浏览: 149
ProFormCascader是Ant Design Pro中的一个组件,它提供了高级的级联选择器功能。在处理模糊搜索时,如果你希望在用户选择某个节点之后,搜索提示不立刻清空,而是保留当前筛选的状态,可以这样做:
1. 配置`optionsFilter`属性:这是ProFormCascader的过滤选项,你可以在用户选择节点后,将搜索关键词绑定到当前选中的节点,而不是每次都从全局开始搜索。这样,搜索结果将基于选中的节点进行细化。
```jsx
import { useProFormState } from '@ant-design/pro-form';
function CustomCascader() {
const [form] = useProFormState();
// 假设 yourCascaderOptions 是你的级联数据源
const filteredOptions = form.getFieldValue('yourCascaderField') || []
? yourCascaderOptions.filter((option) =>
option.label.includes(form.getFieldValue('yourCascaderField'))
)
: [];
return (
<ProForm.Cascader
name="yourCascaderField"
options={filteredOptions}
optionsFilter={(value, option) =>
option.label.toLowerCase().includes(value.toLowerCase())
}
/>
);
}
```
2. 更新`onChange`事件:在用户选择节点时,更新搜索关键字,同时保持当前选中的节点。这样每次选择都会调整选项列表,不会清空之前的选择。
```jsx
<ProForm.Cascader
// ...
onChange={(value, selectedOptions) => {
// 保存当前选择的节点
const currentSelectedOption = selectedOptions.find(
(option) => option.isLeaf && !option.parent,
);
// 更新搜索关键词
form.setFieldsValue({
yourCascaderField: currentSelectedOption?.label,
});
// 更新选项列表
filteredOptions = ...; // 根据currentSelectedOption更新过滤后的选项
}}
/>
```
阅读全文
相关推荐

















