فهرست منبع

improve SiderMenu

ddcat1115 7 سال پیش
والد
کامیت
cec0f45a8d
1فایلهای تغییر یافته به همراه8 افزوده شده و 5 حذف شده
  1. 8 5
      src/components/SiderMenu/SiderMenu.js

+ 8 - 5
src/components/SiderMenu/SiderMenu.js

@@ -177,14 +177,17 @@ export default class SiderMenu extends PureComponent {
     }
     return ItemDom;
   };
-  handleOpenChange = (openKeys) => {
-    const lastOpenKey = openKeys[openKeys.length - 1];
-    const isMainMenu = this.menus.some(
+  isMainMenu = (key) => {
+    return this.menus.some(
       item =>
-        lastOpenKey && (item.key === lastOpenKey || item.path === lastOpenKey),
+        key && (item.key === key || item.path === key),
     );
+  }
+  handleOpenChange = (openKeys) => {
+    const lastOpenKey = openKeys[openKeys.length - 1];
+    const moreThanOne = openKeys.filter(openKey => this.isMainMenu(openKey)).length > 1;
     this.setState({
-      openKeys: isMainMenu ? [lastOpenKey] : [...openKeys],
+      openKeys: moreThanOne ? [lastOpenKey] : [...openKeys],
     });
   };
   render() {