树型选择控件,类似 Select 的选择控件,可选择的数据结构是一个树形结构时,可以使用 TreeSelect,例如公司层级、学科系统、分类目录等等。如下代码可设置具体某一个节点是否可以点击。
const {TreeNode} = TreeSelect;
定义节点组件
const renderTreeNodes = data =>
data.map(item => {
if (item.children) {
item.disabled = true;
return (
<TreeNode key={item.key} title={item.title} value={item.value} disabled={item.disabled}>
{renderTreeNodes(item.children)}
</TreeNode>
);
}
return <TreeNode {...item} key={item.key} title={item.label} value={item.value} />;
});
使用
<TreeSelect
style={{width: '100%'}}
dropdownStyle={{maxHeight: 400, minWidth: 400, overflow: 'auto'}}
treeData={receiverList}
placeholder="请选择"
allowClear
multiple
showSearch
treeDefaultExpandAll
treeNodeFilterProp="title"
>
{renderTreeNodes(receiverList)}
</TreeSelect>