Skip to content

Instantly share code, notes, and snippets.

@dance2die
Created December 4, 2017 02:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dance2die/38b39a57eecb9efd86ec8220bda5081b to your computer and use it in GitHub Desktop.
Save dance2die/38b39a57eecb9efd86ec8220bda5081b to your computer and use it in GitHub Desktop.
addView = async viewName => {
// Don't load more than once.
if (this.state.loadedComponents.includes(viewName)) return;
console.log(`Loading ${viewName} view...`);
import(`./views/${viewName}.js`)
.then(Component => {
this.setState({
loadedComponents: this.state.loadedComponents.concat(viewName),
components: this.state.components.concat(
<Component.default
key={shortid.generate()}
data={this.props.data}
/>
)
});
})
.catch(error => {
this.setState({
loadedComponents: this.state.loadedComponents.concat(viewName),
components: this.state.components.concat(
<NullView key={shortid.generate()} />
)
});
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment