Javascript reactjs中对象数组内对象数组的不变更改状态

Javascript reactjs中对象数组内对象数组的不变更改状态,javascript,arrays,reactjs,redux,immutability,Javascript,Arrays,Reactjs,Redux,Immutability,我在对象数组(wid)中有一个对象数组(卡片),它位于对象(数据)中,如下所示: { 数据:{ 禁令:{ 第一:“一” }, 傅:{ 第二:“两个” }, wid:[ { 代号:"三",, 名称:"四",, 职位:1,, 卡片:[ { 标题:"五",, 身份证号码:“六” } ] }, { 代码:“七”, 姓名:"八",, 职位:2, 卡片:[ { 标题:“九”, 身份证号码:“十” } ] }, //... { 代码:“阿尔法”, 名称:“测试版”, 职位:12, 卡片:[ { 标题:“伽马”

我在对象数组(wid)中有一个对象数组(卡片),它位于对象(数据)中,如下所示:

{
数据:{
禁令:{
第一:“一”
},
傅:{
第二:“两个”
},
wid:[
{
代号:"三",,
名称:"四",,
职位:1,,
卡片:[
{
标题:"五",,
身份证号码:“六”
}
]
},
{
代码:“七”,
姓名:"八",,
职位:2,
卡片:[
{
标题:“九”,
身份证号码:“十”
}
]
},
//...
{
代码:“阿尔法”,
名称:“测试版”,
职位:12,
卡片:[
{
标题:“伽马”,
id:“θ”
}
]
}
]
}
}
现在我从API中得到另一个值,如下所示

const newWid={
代码:“新”,
名称:“新名称”,
职位:2,
卡片:[
{
标题:“新文件”,
id:“新id”
}
]
}
如何更改
数据
:只有数组内部对象
wid
在新wid中提供的位置被替换,而不是
wid
中的整个对象不可变,且位置已提供。(
2
newWid
中所述)


另外,我没有使用setState。

const position=newWid.display//获取位置

//步骤1:获取wid中的对象并更新其卡
const specificWid={…data.wid[position],cards:data.cards}

//步骤2:更新wid
const newestWid=[…data.wid]newwid.splice(位置,1,specificWidget)

//步骤3:
{…data,data:{…data,wid:[…newwid]}

“Ps.我没有使用setState”你在使用什么?只是不可变地更新状态你如何“只是”不可变地更新状态?(请注意,
setState
就是这样做的。)让我们忘记状态,我们如何能不可变地更新上面的对象