You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中如何更新嵌套对象数组?替换prop1.mainList.list2值

如何正确更新嵌套对象中的数组属性?

你的代码问题在于展开运算符的层级完全错误,直接展开prop1.mainList.list2和prop2.list2会把数组里的每个元素当作键值对塞到外层对象里,根本没触碰到prop1.mainList下的list2属性。

正确的写法

要更新嵌套层级里的属性,需要逐层展开并替换目标属性:

// 先复制原对象,再逐层替换嵌套属性
const updatedProps = {
  ...prop1,
  mainList: {
    // 复制原mainList的所有属性(list1、list3)
    ...prop1.mainList,
    // 把list2替换成prop2里的新值
    list2: prop2.list2
  }
};

const { output } = renderList(updatedProps);

进阶:如果prop2有多个属性要合并到mainList

如果后续prop2可能包含list1、list3这类需要覆盖mainList的其他属性,可以直接把prop2展开到mainList里:

const updatedProps = {
  ...prop1,
  mainList: {
    ...prop1.mainList,
    // 一次性覆盖mainList中与prop2同名的所有属性
    ...prop2
  }
};

这样就能精准替换mainList.list2的值,同时保留原对象的其他属性不被修改。

内容的提问来源于stack exchange,提问作者R9102

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 02:50:30