Тот же пример на ООП:
param ---> slug
pageInfo ---> page/pageData
infoPage---> fetchPageBySlug
pageLoad ---> isFetching
getComponent(type) {
switch (type) {
case 'component1':
return Component1;
case 'component2':
return Component2;
case 'component3':
return Component3;
default:
return <Page404 />;
}
}
render() {
const { isFetching, pageInfo } = this.props;
if (isFetching) return <Preloader />;
const Component = getComponent(pageInfo.type);
return <Component pageInfo={pageInfo} />;
}