Skip to content

Instantly share code, notes, and snippets.

@manivelarjunan
Last active March 30, 2019 22:15
Show Gist options
  • Save manivelarjunan/06a03bc6c9a68efdbe825340e4625c24 to your computer and use it in GitHub Desktop.
Save manivelarjunan/06a03bc6c9a68efdbe825340e4625c24 to your computer and use it in GitHub Desktop.
Load component dynamically when click on button
import React, { Component, Suspense } from 'react';
import { BrowserRouter, Route, NavLink } from 'react-router-dom';
import Welcome from './containers/Welcome';
import Home from './containers/Home';
//import Details from './containers/Details';
const Details = React.lazy(() => import('./containers/Details'));
class App extends Component {
state = { loadComponent: false };
loadHandler = () => {
this.setState(prevState => {
return { loadComponent: !prevState.loadComponent }
});
}
render() {
return (
<React.Fragment>
<button onClick={this.loadHandler}>Load component</button>
{this.state.loadComponent ?
(<Suspense fallback={<span>I am working on it ...</span>}><Details /></Suspense>)
: (<Home />)}
</React.Fragment>
);
}
}
export default App;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment