fix(components/bundle): Exit early in load function (#4349)

This commit is contained in:
Sorin Davidoi 2017-07-25 01:05:44 +02:00 committed by Eugen Rochko
parent de105d64d5
commit 23e854cb91

View file

@ -52,14 +52,8 @@ 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;
this.setState({ mod: undefined });
onFetch(); onFetch();
if (renderDelay !== 0) {
this.timestamp = new Date();
this.timeout = setTimeout(() => this.setState({ forceRender: true }), renderDelay);
}
if (Bundle.cache[fetchComponent.name]) { if (Bundle.cache[fetchComponent.name]) {
const mod = Bundle.cache[fetchComponent.name]; const mod = Bundle.cache[fetchComponent.name];
@ -68,6 +62,13 @@ class Bundle extends React.Component {
return Promise.resolve(); return Promise.resolve();
} }
this.setState({ mod: undefined });
if (renderDelay !== 0) {
this.timestamp = new Date();
this.timeout = setTimeout(() => this.setState({ forceRender: true }), renderDelay);
}
return fetchComponent() return fetchComponent()
.then((mod) => { .then((mod) => {
Bundle.cache[fetchComponent.name] = mod; Bundle.cache[fetchComponent.name] = mod;