let About = lazy(() => import(
'./About.jsx'
));
class App extends Component {
state = {
load:
false
,
error:
false
,
}
load = () => {
this
.setState({load:
true
});
}
retry = () => {
this
.setState({error:
false
});
}
static getDerivedStateFromError(e) {
return
{error: e}
}
render() {
const { load, error } =
this
.state;
if
(error) {
return
(<div>
<p>{error.message}</p>
<button onClick={
this
.retry}>retry</button>
</div>);
}
return
(
<div>
<button type=
"button"
onClick={
this
.load}>load</button>
<Suspense fallback={<div>loading</div>}>
{
load && (
<About/>
)
}
</Suspense>
</div>
);
}
}