|
|
@@ -203,6 +203,15 @@ class BasicLayout extends React.PureComponent {
|
|
|
});
|
|
|
return groupBy(newNotices, 'type');
|
|
|
}
|
|
|
+ getRouteComponent(item) {
|
|
|
+ if (this.routeComponents[item.path]) {
|
|
|
+ return this.routeComponents[item.path];
|
|
|
+ }
|
|
|
+ const component = item.component(this.props.app);
|
|
|
+ this.routeComponents[item.path] = component;
|
|
|
+ return component;
|
|
|
+ }
|
|
|
+ routeComponents = {};
|
|
|
handleOpenChange = (openKeys) => {
|
|
|
const lastOpenKey = openKeys[openKeys.length - 1];
|
|
|
const isMainMenu = this.menus.some(
|
|
|
@@ -239,7 +248,7 @@ class BasicLayout extends React.PureComponent {
|
|
|
}
|
|
|
}
|
|
|
render() {
|
|
|
- const { app, currentUser, collapsed, fetchingNotices } = this.props;
|
|
|
+ const { currentUser, collapsed, fetchingNotices } = this.props;
|
|
|
|
|
|
const menu = (
|
|
|
<Menu className={styles.menu} selectedKeys={[]} onClick={this.onMenuClick}>
|
|
|
@@ -352,7 +361,7 @@ class BasicLayout extends React.PureComponent {
|
|
|
exact={item.exact}
|
|
|
key={item.path}
|
|
|
path={item.path}
|
|
|
- component={item.component(app)}
|
|
|
+ component={this.getRouteComponent(item)}
|
|
|
/>
|
|
|
)
|
|
|
)
|