javascript - React 展示/容器组件分离
问题描述
好的,我正在尝试使用容器/演示组件设计制作一个项目,但我缺少某种信息或知识。
我想要做的是根据它的父组件的类型来渲染一个组件:
我有这条路线:http://localhost:3000/:componentId
componentId
有一个类型为 (HTML
或Text
) 的后端模型。
所以,我想我可以Component
使用以下结构创建:
page.js:
const HtmlPage = props => {
return <Fragment>My HTML Component</Fragment>
};
const TextPage = props => {
return <Fragment>My Text Component</Fragment>
};
// material-ui styles
const HtmlComponent = withStyles(styles)(HtmlPage);
const TextComponent = withStyles(styles)(TextPage);
export {
HtmlComponent,
TextComponent
};
index.js:
import {
HtmlComponent as HtmlPage,
TextComponent as TextPage
} from './page';
class Component extends React.Component {
constructor(props) {
super(props);
this.state = { componentType: 'HTML' };
}
componentDidMount() {
// Retrieve model's type from backend
}
render() {
switch(this.state.componentType) {
case 'HTML':
return <HtmlPage />;
case 'Text':
return <TextPage />;
}
}
}
export default Component;
所以我的问题是,这个组件是否“拆分”格式正确,或者我应该为其创建多个组件HtmlPage
,TextPage
然后将它们导入父级Component
?
任何评论表示赞赏。
解决方案
推荐阅读
- nginx - nginx.conf 和 proxy.conf 中服务器的设置有什么关系?
- postgresql - 从 pg_dump 中为 athena 提取数据?
- systemd - “log2ram-daily.timer”与其“override.conf”文件之间的问题
- php - 提交到数据库后,Laravel 无法将值传递给控制器
- python - 如何在 Python 中将 julia 集图像保存为 png?
- javascript - 如何从div中获取一个数字然后相乘
- aura-framework - 如何在 aura 组件上显示文件
- dns - 您能否覆盖已委派给另一个名称服务器的 DNS 条目?
- c++ - E0312 IntelliSense 无法转换 _Binder
- javascript - 在@media print 上更改页面大小时更改css样式