Skip to content

Instantly share code, notes, and snippets.

@erasmo-marin
Created April 24, 2018 12:47
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 erasmo-marin/72fb059764d2e07228934f10ef28b1e8 to your computer and use it in GitHub Desktop.
Save erasmo-marin/72fb059764d2e07228934f10ef28b1e8 to your computer and use it in GitHub Desktop.
import React, { Component } from 'react';
export default function dynamicComponent(importComponent) {
class DynamicComponent extends Component {
constructor(props) {
super(props);
this.state = {
component: null
};
}
async componentDidMount() {
const { default: component } = await importComponent();
this.setState({
component: component
});
}
render() {
const C = this.state.component;
return C ? <C {...this.props} /> : null;
}
}
return DynamicComponent;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment