From 9b13ab687e5644b113d2b3542bc36e4db48ade52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=B8=85?= Date: Wed, 24 Apr 2019 14:57:33 +0800 Subject: [PATCH] bugfix:fix #3878, In the top mode. Menu will follow the slide (#3928) * bugfix:fix #3878, In the top mode. Menu will follow the slide * typo: repalce warp to wrap --- src/components/SiderMenu/BaseMenu.js | 41 ++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/src/components/SiderMenu/BaseMenu.js b/src/components/SiderMenu/BaseMenu.js index 9ab66ec3..87eafb02 100644 --- a/src/components/SiderMenu/BaseMenu.js +++ b/src/components/SiderMenu/BaseMenu.js @@ -123,6 +123,17 @@ export default class BaseMenu extends PureComponent { return `/${path || ''}`.replace(/\/+/g, '/'); }; + getPopupContainer = (fixedHeader, layout) => { + if (fixedHeader && layout === 'topmenu') { + return this.wrap; + } + return document.body; + }; + + getRef = ref => { + this.wrap = ref; + }; + render() { const { openKeys, @@ -131,6 +142,8 @@ export default class BaseMenu extends PureComponent { location: { pathname }, className, collapsed, + fixedHeader, + layout, } = this.props; // if pathname can't match, use the nearest parent's key let selectedKeys = this.getSelectedMenuKeys(pathname); @@ -149,18 +162,22 @@ export default class BaseMenu extends PureComponent { }); return ( - - {this.getNavMenuItems(menuData)} - + <> + this.getPopupContainer(fixedHeader, layout)} + > + {this.getNavMenuItems(menuData)} + +
+ ); } } -- GitLab