【发布时间】:2016-05-27 00:51:21
【问题描述】:
我有一个反应组件,它有条件地呈现几个子组件。简化的代码就是:
render(): {
const component1 = condition ? renderComponent2() : null;
const component2 = renderComponent2();
return (
<div>
{component1}
{component2}
</div>
);
}
问题是component2 在condition 更改时被销毁并重新渲染。我试图阻止这种情况并保留原始元素。我尝试将key 添加到component2,但没有成功。
[edit] 即使component1 始终存在并且我更改其上的标志以使用 CSS 隐藏或不隐藏它,也会发生这种情况:/
【问题讨论】:
-
不应该这样。请显示复制此内容的完整代码。
-
我不能,这是一段真正集成的代码。想知道是否有人对它可能发生的原因有任何建议?
-
你为什么要保留渲染的组件?您可以保留所有道具,以便在重新渲染时保持相同。
-
我的建议是将子组件保留为状态的一部分。它可能不是最优雅的,但它会起作用。
-
@EzraChang 我不认为这是正确的。首先应该没有问题,你绝对不应该将组件放入状态。
标签: javascript reactjs