避免在React中重新渲染子组件

时间:2018-06-08 18:29:35

标签: reactjs

在我的反应应用中,我在渲染方法中渲染一个项目列表,每个项目都有唯一且确定的密钥。但是,每当调用render时,都会再次调用每个项的构造函数,从DOM中删除旧项并添加一个新项。为什么会这样?如何使每个子组件不重新渲染?

<Rect key={`${i}-${j}-rect`} ...

我认为为每个项目提供一个唯一的密钥会阻止这一点,但列表中的每个项目仍然会重新渲染。

2 个答案:

答案 0 :(得分:0)

没关系,原来我没有正确分配钥匙。我将我的密钥更改为唯一标识符(在这种情况下,每个数据点的日期),现在每次调用渲染时都不会丢弃子项。将密钥分配给组件时,请确保尝试避免使用数组索引。

答案 1 :(得分:0)

这就是我要告诉你的。可能就是这样。如果它们具有相同的键,则列表中的项目只应重新呈现