1获取接口数据并将数据转换成树形数组
useEffect(() => {
axios
.get('/接口数据', {
params: {
“请求参数”
},
})
.then((res) => {
console.log(res);
const getTreeData = (treeData, pid) => {
// 把数据转化为树型结构
let tree = [];
let currentParentId = pid || 0;
for (let i = 0; i < treeData.length; i += 1) {
if (treeData[i]) {
if (treeData[i].pid === currentParentId) {
tree.push(treeData[i]);
}
}
}
for (let j = 0; j < tree.length; j += 1) {
if (tree[j]) {
let children = getTreeData(treeData, tree[j].id);
if (children && children.length) {
tree[j].children = children;
}
}
}
return tree;
};
// 树形数据
let data = getTreeData(获取需要转换的参数);
console.log(data);
setGear(data);
});
}, []);
2使用自定义Cascader级联选择组件
import {Cascader } from 'antd';
<Cascader
value={rank || undefined}
fieldNames={{
label: 'title',
value: 'id',
children: 'children',
}}
options={gear}
onChange={onChange}
placeholder="请输入档级"
style={{ width: 170 }}
/>
3效果: