react+antd的Cascader级联选择多选怎么展示
在react+antd的Cascader级联选择多选中,可以使用Tag标签来展示已选中的选项。
具体实现步骤如下:
-
在Cascader组件中设置multiple属性为true,开启多选功能。
-
在Cascader的onSelect回调函数中,获取当前选中的值,并将其保存到一个数组中。
-
在Tag标签中遍历已选中的选项数组,并展示每个选项的名称和删除按钮。
-
在删除按钮的onClick事件中,调用Cascader的onChange方法,将当前选项从已选中的选项数组中删除,并重新设置Cascader的value值。
示例代码如下:
import React, { useState } from 'react';
import { Cascader, Tag } from 'antd';
const options = [
{
label: '北京',
value: 'beijing',
children: [
{
label: '海淀区',
value: 'haidian',
},
{
label: '朝阳区',
value: 'chaoyang',
},
],
},
{
label: '上海',
value: 'shanghai',
children: [
{
label: '浦东新区',
value: 'pudong',
},
{
label: '徐汇区',
value: 'xuhui',
},
],
},
];
const MultiCascader = () => {
const [selectedOptions, setSelectedOptions] = useState([]);
const handleCascaderChange = (value, selectedOptions) => {
setSelectedOptions(selectedOptions);
};
const handleTagClose = (value) => {
const newSelectedOptions = selectedOptions.filter(
(option) => option.value !== value
);
setSelectedOptions(newSelectedOptions);
};
return (
<div>
<Cascader
options={options}
onChange={handleCascaderChange}
placeholder="请选择"
allowClear
multiple
/>
{selectedOptions.map((option) => (
<Tag
key={option.value}
closable
onClose={() => handleTagClose(option.value)}
>
{option.label}
</Tag>
))}
</div>
);
};
export default MultiCascader;
``
原文地址: https://www.cveoy.top/t/topic/fqWj 著作权归作者所有。请勿转载和采集!