1
- /* eslint-disable global-require */
2
1
import { createElement } from 'react' ;
3
2
import dynamic from 'dva/dynamic' ;
4
3
import { getMenuData } from './menu' ;
5
4
6
5
let routerDataCache ;
7
6
7
+ const modelNotExisted = ( app , model ) => (
8
+ // eslint-disable-next-line
9
+ ! app . _models . some ( ( { namespace } ) => namespace === model )
10
+ ) ;
11
+
8
12
// wrapper of dynamic
9
13
const dynamicWrapper = ( app , models , component ) => {
10
14
// () => require('module')
11
15
// transformed by babel-plugin-dynamic-import-node-sync
12
16
if ( component . toString ( ) . indexOf ( '.then(' ) < 0 ) {
13
17
models . forEach ( ( model ) => {
14
- if ( ! app [ '_models' ] . some ( ( { namespace } ) => namespace === model ) ) { // eslint-disable-line
15
- app . model ( require ( `../models/${ model } ` ) ) ; // eslint-disable-line
18
+ if ( modelNotExisted ( app , model ) ) {
19
+ // eslint-disable-next-line
20
+ app . model ( require ( `../models/${ model } ` ) ) ;
16
21
}
17
22
} ) ;
18
23
return ( props ) => {
@@ -28,8 +33,9 @@ const dynamicWrapper = (app, models, component) => {
28
33
// () => import('module')
29
34
return dynamic ( {
30
35
app,
31
- // eslint-disable-next-line no-underscore-dangle
32
- models : ( ) => models . filter ( m => ! app . _models . some ( ( { namespace } ) => namespace === m ) ) . map ( m => import ( `../models/${ m } .js` ) ) ,
36
+ models : ( ) => models . filter (
37
+ model => modelNotExisted ( app , model ) ) . map ( m => import ( `../models/${ m } .js` )
38
+ ) ,
33
39
// add routerData prop
34
40
component : ( ) => {
35
41
if ( ! routerDataCache ) {
0 commit comments