首页 > 解决方案 > 记忆对象数组的状态

问题描述

我有一个反应状态,它是对象数组(包含子组件的数据),并且子组件可以更新数据(提升状态),但是每当它执行时,所有其他子组件都会重新渲染,所以我想添加记忆,但问题是我只将状态数组的对象传递给每个组件,所以它不起作用,为了更好地理解这里是代码

状态声明:

const [data, setData] = useState(() =>
  Array.from({length: DATA_SIZE}, (_,idx) => ({
    values: [],
    id: -1 * (idx + 1) // all of the real ids start from 0
  }))
);

并且有使用

    {data.map((val) => {
      return <DataForm {...val} />;
    })}

现在我要说的是,我可以从 DataForm 提升状态(更改“值”或“id”道具),并且所有其他DataForm组件将被重新渲染,即使它们的道具没有改变,即使我添加了React.memo因为“值”是数组,所以我想为每个“数据”对象添加记忆,但我不知道怎么做,因为我想useMemo在这里帮不了我。

标签: reactjs

解决方案


推荐阅读