reactjs - 如何减少在 ReactJS 上一次只显示一个的重复组件?
问题描述
从这里可以看出,有多个面板,但一次只能扩展一个面板,但是<Content />
安装了多次,有没有办法<Content />
在这些多个面板中只使用一个?
解决方案
您可以使用条件渲染来避免多次安装<Content />
组件。你的渲染应该是这样的:
render() {
const { expanded } = this.state;
return (
<div className="App">
{["panel 1", "panel 2", "panel 3", "panel 4", "panel 5", "panel 6"].map(
panel => (
<ExpansionPanel
expanded={expanded === panel}
onChange={this.handleChange(panel)}
>
<ExpansionPanelSummary>{panel}</ExpansionPanelSummary>
<ExpansionPanelDetails>
{expanded === panel ? <Content from={panel} /> : null}
</ExpansionPanelDetails>
</ExpansionPanel>
)
)}
</div>
);
}
仅在需要时使用条件expanded===panel
进行安装。
推荐阅读
- python - Python:仅在未捕获时才执行异常代码
- apache-spark - 如何根据文件是否存在加载文件,然后将它们迭代地添加到 Spark 数据帧中,以便跳过不存在的文件?
- python - 如何在 Python 中编辑 URL 而不出现 HTTP500 错误?
- php - 如何将数据插入许多关系?
- elasticsearch - 无法为 Elasticsearch 7 创建工作索引
- pybind11 - 将存储 long 的 pybind11::object 转换为 ssize_t
- c# - 包含中的 where 语句不过滤
- java - catch (Exception e) {} vs finally {}
- python - 如何在 Python 中检索证券交易所的价格数据?
- python - Python正则表达式在包含单词的标签之间查找块