|
5 | 5 | // ==================
|
6 | 6 | import React, { useState, useEffect, useCallback, useMemo } from "react";
|
7 | 7 | import { Layout, Menu as MenuAntd } from "antd";
|
8 | | -import { Link, useNavigate,useLocation } from "react-router-dom"; |
| 8 | +import { Link, useNavigate,useLocation } from "react-router-dom"; |
9 | 9 | import { cloneDeep } from "lodash";
|
10 | 10 |
|
11 | 11 | const { Sider } = Layout;
|
@@ -50,23 +50,26 @@ export default function MenuCom(props: Props): JSX.Element {
|
50 | 50 |
|
51 | 51 | // 菜单被选择
|
52 | 52 | const onSelect = (e: any) => {
|
53 | | - if(e?.key){ |
| 53 | + if(e?.key){ |
54 | 54 | navigate(e.key);
|
55 | 55 | }
|
56 | | - } |
| 56 | + }; |
57 | 57 |
|
58 | 58 | // 工具 - 递归将扁平数据转换为层级数据
|
59 | | - const dataToJson = useCallback((one: Menu | undefined, data: Menu[]): Menu[] | undefined => { |
60 | | - let kids; |
61 | | - if (!one) { |
62 | | - // 第1次递归 |
63 | | - kids = data.filter((item: Menu) => !item.parent); |
64 | | - } else { |
65 | | - kids = data.filter((item: Menu) => item.parent === one.id); |
66 | | - } |
67 | | - kids.forEach((item: Menu) => (item.children = dataToJson(item, data))); |
68 | | - return kids.length ? kids : undefined; |
69 | | - }, []); |
| 59 | + const dataToJson = useCallback( |
| 60 | + (one: Menu | undefined, data: Menu[]): Menu[] | undefined => { |
| 61 | + let kids; |
| 62 | + if (!one) { |
| 63 | + // 第1次递归 |
| 64 | + kids = data.filter((item: Menu) => !item.parent); |
| 65 | + } else { |
| 66 | + kids = data.filter((item: Menu) => item.parent === one.id); |
| 67 | + } |
| 68 | + kids.forEach((item: Menu) => (item.children = dataToJson(item, data))); |
| 69 | + return kids.length ? kids : undefined; |
| 70 | + }, |
| 71 | + [] |
| 72 | + ); |
70 | 73 |
|
71 | 74 | // 构建树结构
|
72 | 75 | const makeTreeDom = useCallback((data: Menu[]): JSX.Element[] => {
|
|
0 commit comments