TreeSelect 树形选择
使用场景#
树形结构的选择器,常用于盒马门店选择(一般是三层结构:商家、子公司、门店),盒马商品类目选择(一级类目、二级类目、三级类目)等场景。
单选与多选#
TreeSelect 支持以下两种方式来开启多选模式:
- 设置
multiple={true} - 使用
<TreeSelect.Multi />组件
在 TypeScript 项目中,我们推荐使用组件来切换单选(TreeSelect.Single)和多选(TreeSelect.Multi),类型提示和检查将更准确。
使用说明#
示例#
基本示例#
noInline
搜索用法#
noInline
实践#
盒马类目搜索#
loading...
inline
盒马类目多选#
loading...
inline
API#
TreeSelect.Multi 和 TreeSelect.Single 的区别:
value的类型不同,defaultValue,onChange的类型也有相应的区别- 多选额外支持
checkStrictly和checkedStrategy,这两个 props 含义详见 Tree 组件文档
| 字段 | 描述 | |
|---|---|---|
| defaultValue | string | string[] | |
| value | string | string[] | |
| onChange | (nextValue: string | string[], detail: {}) => void | |
| multiple | boolean | |
| disabled | boolean | |
| dataSource | TreeSelectItem[] | |
| expandedKeys | string[] | |
| onExpand | (nextExpandedKeys: string[], detail: { action: "expand" | "collapse"; key: string; event: MouseEvent<HTMLElement, MouseEvent>; }) => void | |
| defaultExpandAll | boolean | |
| defaultExpandedKeys | string[] | |
| checkStrictly | boolean | |
| checkedStrategy | TreeCheckedStrategy | |
| 外观 | ||
| size | string选择器尺寸 | |
| style | CSSProperties | |
| className | string | |
| placeholder | string选择器值为空时,trigger 上的占位文本 | |
| hasArrow | boolean是否有下拉箭头 | |
| fill | boolean选择器宽度是否占满容器 | |
| shape | "simple" | "solid"选择器形状 | |
| hasClear | boolean是否有清除按钮 | |
| status | "normal" | "error" | "success" | "warning"选择器状态 | |
| containerProps | HTMLAttributes<HTMLDivElement> | |
| 弹层 | ||
| visible | boolean弹层是否打开 | |
| onRequestClose | (reason?: any) => void | |
| defaultVisible | boolean弹层是否默认打开 | |
| onRequestOpen | (reason?: any) => void | |
| autoWidth | boolean = true | |
| autoHeight | boolean = true | |
| autoScrollToFirstItemWhenOpen | boolean = true选择器弹层被打开时,是否自动滚动到第一个选中的元素 | |
| autoCloseAfterSelect | boolean选择元素时,是否自动关闭弹层。 单选模式下默认为 true,多选模式下默认为 false | |
| popupProps | PopupProps透传给 Popup 组件的 props | |
| 搜索 | ||
| showSearch | boolean是否支持搜索功能 | |
| searchValue | string搜索关键字 | |
| defaultSearchValue | string非受控用法,默认的搜索关键字 | |
| onSearch | (nextSearchValue: string, detail: { event: any; }) => void关键字修改回调 | |
| notFoundContent | ReactNode搜索结果为空时的展示内容 | |
