diff --git a/src/layouts/BasicLayout.js b/src/layouts/BasicLayout.js index 3b59e48aef9e2642e6155f7121934bda6ff59367..bf9cf4fe41d5771891fed5d671056d8485ddfe4a 100644 --- a/src/layouts/BasicLayout.js +++ b/src/layouts/BasicLayout.js @@ -16,6 +16,7 @@ import logo from '../assets/logo.svg'; import Footer from './Footer'; import Header from './Header'; import Context from './MenuContext'; +import Exception403 from '../pages/Exception/403'; const { Content } = Layout; @@ -76,6 +77,7 @@ class BasicLayout extends React.PureComponent { this.getPageTitle = memoizeOne(this.getPageTitle); this.getBreadcrumbNameMap = memoizeOne(this.getBreadcrumbNameMap, isEqual); this.breadcrumbNameMap = this.getBreadcrumbNameMap(); + this.matchParamsPath = memoizeOne(this.matchParamsPath, isEqual); } state = { @@ -156,14 +158,16 @@ class BasicLayout extends React.PureComponent { return routerMap; } + matchParamsPath = pathname => { + const pathKey = Object.keys(this.breadcrumbNameMap).find(key => + pathToRegexp(key).test(pathname) + ); + return this.breadcrumbNameMap[pathKey]; + }; + getPageTitle = pathname => { - let currRouterData = null; - // match params path - Object.keys(this.breadcrumbNameMap).forEach(key => { - if (pathToRegexp(key).test(pathname)) { - currRouterData = this.breadcrumbNameMap[key]; - } - }); + const currRouterData = this.matchParamsPath(pathname); + if (!currRouterData) { return 'Ant Design Pro'; } @@ -221,6 +225,7 @@ class BasicLayout extends React.PureComponent { const { isMobile } = this.state; const isTop = PropsLayout === 'topmenu'; const menuData = this.getMenuData(); + const routerConfig = this.matchParamsPath(pathname); const layout = ( {isTop && !isMobile ? null : ( @@ -247,12 +252,15 @@ class BasicLayout extends React.PureComponent { isMobile={isMobile} {...this.props} /> - {children} + + }> + {children} + +