reactjs - 记忆对象数组的状态
问题描述
我有一个反应状态,它是对象数组(包含子组件的数据),并且子组件可以更新数据(提升状态),但是每当它执行时,所有其他子组件都会重新渲染,所以我想添加记忆,但问题是我只将状态数组的对象传递给每个组件,所以它不起作用,为了更好地理解这里是代码
状态声明:
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
在这里帮不了我。
解决方案
推荐阅读
- javascript - 如何将 html2pdf 连接到 nodemailer
- android - 使用 Android BLE 时出现错误“E/bt_btif:... ignore HID...”
- java - 使用 JSONPath 的 MockMVC 无法读取
- javascript - 动态内容的反应状态
- r - 我在 ggplot2 上的热图没有显示部分数据,但 data.frame 似乎很好
- python - 如何在正则表达式中搜索这种模式
- babeljs - Babel 7 更新了无法同时使用装饰器和装饰器遗留插件的玩笑测试
- regex - Spark Scala Regex -> 基于正则表达式创建多列
- php - 使用 PHP 和 SQL 更新用户状态
- java - 如何在 weblogic 12.1.3.0 中使用@EJB、@Inject 和@Local?