From 44193336bdef5365bb8e6aea87b2d3a618c700ce Mon Sep 17 00:00:00 2001 From: YuJian920 Date: Sat, 7 May 2022 22:38:14 +0800 Subject: [PATCH] vault backup: 2022-05-07 22:38:14 --- ...Effect 实现管理后台中的 Tab 功能.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/随时随地/使用 Context + useEffect 实现管理后台中的 Tab 功能.md b/随时随地/使用 Context + useEffect 实现管理后台中的 Tab 功能.md index 5d94e2c..fccb3f6 100644 --- a/随时随地/使用 Context + useEffect 实现管理后台中的 Tab 功能.md +++ b/随时随地/使用 Context + useEffect 实现管理后台中的 Tab 功能.md @@ -84,5 +84,21 @@ const closeTab = (path) => { }; ``` +## 上边的数组扁平化函数 + +```javascript +export const flattenArray = (data, key = "children") => { + const flatRouter: any[] = []; + const flattenRecursion = (data: any) => { + data.forEach((item: any) => { + if (item[key]) flattenRecursion(item[key]); + flatRouter.push(item); + }); + }; + flattenRecursion(data); + return flatRouter; +}; +``` + ## End 至此,整个 Tabs 功能的基本逻辑就已经实现了,完整的代码可以看[这里](https://github.com/YuJian920/YuJian-Blog/blob/Remake/YuJianBlog-Admin/src/context/TabContext.tsx),其实完整的 Tabs 功能还没有结束,例如还有对 Tabs 长度的限制,避免打开的 Tab 太多导致长度过长,还有完备的 Tabs 应该有一个右键菜单,可以实现关闭其他、关闭所有之类更多的功能,这里就不展开谈了,如果有时间的话后边会再写一篇文章补全上述提到的这些功能 \ No newline at end of file