reactjs - 无需卸载即可动态响应布局子项
问题描述
我有一个 React 组件,用于根据其子项的键对其进行布局。这是它的样子:
<Container focusedChildKey={this.state.focusedChildKey}>
<Child key="child1" />
<Child key="child2" />
<Child key="child3" />
</Container>
在容器中,在render
函数中我做了一些简单的事情:
let focused = null;
let normals = [];
React.Children.forEach(children, (child) => {
if (child.key === this.props.focusedChildKey) {
focused = child
} else {
normals.push(child);
}
});
return (
<div>
<div className="focusedChild", style={{ ... }}>
{focused}
</div>
{normals}
</div>
);
我遇到的问题是,每当focusedChildKey
道具改变时Container
,专注的孩子就会被卸载并再次安装。就我而言,孩子们有很多状态,每次孩子集中注意力时我都会失去这些状态。
我读了很多书,但不明白为什么要重新安装整个组件。
解决方案
推荐阅读
- python - 如何运行python代码直到满足条件
- html - 如何编辑 html 模板,以便为每个公司显示不同的徽标?
- javascript - 如何为对象设置值是对象数组?
- c# - 使用 NPOI 将 Excel 单元格区域格式化为表格
- javascript - 将段落样式应用于 InDesign 脚本中当前表格的最后一个单元格
- javascript - 通过获取跨度内的按钮文本单击“确认”按钮
- c - 在内核模块中基于缓冲区和长度创建字符的问题
- c++ - QTableView 在 QPushButton 上的弹出窗口中单击
- java - 我如何在 PHP 和 JAVA 之间使用 AES/GCM/ 加密和解密
- r - 如何在没有数据的情况下绘制 JUST 线性回归?