【发布时间】:2018-11-05 13:38:39
【问题描述】:
我不确定如何更新通过数组映射呈现的组件的道具。
我有一个名为 names 的数组,我将其映射到为每个名称呈现一个 Panel 组件。每个面板都包含一个图表组件,用于创建显示一些数据的图表。每个图表的数据作为称为“数据”的道具传递给每个图表组件。每个图表的数据存储在一个名为 chartData 的数组中。这是一个例子:
{
names.map((name, index) => {
return (
<Panel key={index}>
<h1>{name}</h1>
<Chart data={chartData[index]} />
</Panel>
);
});
}
我不知道该怎么做是更新每个图表组件的数据,而无需再次映射名称数组并重新渲染所有内容。一旦数据更新,我希望以某种方式将新数据传递给每个现有的图表组件。有任何想法吗?
【问题讨论】:
-
update the data for each Chart component without mapping over the names array- 我不确定你到底在问什么。 -
一旦数据发生变化,我想更新图表,但我不想用新数据制作新图表;我希望旧图表显示新数据。不确定这是否有意义。
-
如果您将 PureComponent 用于您的 Panel 类,重新渲染应该相当有效。
-
嗨,如果你在你的项目中使用
Redux,你可以使用reselect库,它将记住你的商店:github.com/reduxjs/reselect
标签: javascript reactjs