[英]Immutable change array of object inside array of objects state in reactjs
我在对象(wid)数组中有一个对象(卡片)数组,它在对象(数据)内部,如下所示:
{
data: {
ban: {
first: "one"
},
foo: {
second: "two"
},
wid: [
{
code: "three",
name: "four",
position: 1,
cards: [
{
title: "five",
id: "six"
}
]
},
{
code: "seven",
name: "eight",
position: 2,
cards: [
{
title: "nine",
id: "ten"
}
]
},
//...
{
code: "alpha",
name: "beta",
position: 12,
cards: [
{
title: "gamma",
id: "theta"
}
]
}
]
}
}
现在我从 API 得到另一个值,如下所示
const newWid = {
code: "new",
name: "newname",
position: 2,
cards: [
{
title: "newtile",
id: "newid"
}
]
}
How can I change data
: only cards inside object inside array wid
to be replaced at position provided in new wid and not the whole object inside wid
) immutable, with the position provided. ( newWid
中提供的2
个)
附言。 我没有使用 setState。
const position = newWid.display //得到 position
//step1: 获取wid里面的object并更新它的cards const specificWid = {...data.wid[position], cards: data.cards }
//step2: 更新wid const newestWid = [...data.wid] newwid.splice( position, 1, specificWidget)
//step3: {...data, data: {...data, wid: [...newwid] } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.