@ -26,7 +26,7 @@ class Bundle extends React.Component {
onFetchFail : noop ,
onFetchFail : noop ,
}
}
static cache = { }
static cache = new Map
state = {
state = {
mod : undefined ,
mod : undefined ,
@ -51,13 +51,12 @@ class Bundle extends React.Component {
load = ( props ) => {
load = ( props ) => {
const { fetchComponent , onFetch , onFetchSuccess , onFetchFail , renderDelay } = props || this . props ;
const { fetchComponent , onFetch , onFetchSuccess , onFetchFail , renderDelay } = props || this . props ;
const cachedMod = Bundle . cache . get ( fetchComponent ) ;
onFetch ( ) ;
onFetch ( ) ;
if ( Bundle . cache [ fetchComponent . name ] ) {
if ( cachedMod ) {
const mod = Bundle . cache [ fetchComponent . name ] ;
this . setState ( { mod : cachedMod . default } ) ;
this . setState ( { mod : mod . default } ) ;
onFetchSuccess ( ) ;
onFetchSuccess ( ) ;
return Promise . resolve ( ) ;
return Promise . resolve ( ) ;
}
}
@ -71,7 +70,7 @@ class Bundle extends React.Component {
return fetchComponent ( )
return fetchComponent ( )
. then ( ( mod ) => {
. then ( ( mod ) => {
Bundle . cache [fetchComponent . name ] = mod ;
Bundle . cache .set ( fetchComponent , mod ) ;
this . setState ( { mod : mod . default } ) ;
this . setState ( { mod : mod . default } ) ;
onFetchSuccess ( ) ;
onFetchSuccess ( ) ;
} )
} )