繁華開滿天機(jī)
2022-10-08 15:01:36
我無(wú)法解決這個(gè) setState 第二天晚上,我已經(jīng)絕望了。我有大量嵌套的對(duì)象,我正在嘗試更新。如果我在 todaysMenu 中有多個(gè)元素,并且我正在嘗試更新第二個(gè)元素的狀態(tài),則整個(gè)數(shù)組會(huì)“存儲(chǔ)”在 todaysMenu 的第一個(gè)元素中。onChangeAnyValue(values, itemIndex) { const key = Object.keys(values.x)[0]; const provideDate = values.date; this.setState(prevState => ({ data: prevState.data.map(day => day.date === provideDate ? { ...day, todaysMenu: [{ ...day.todaysMenu, [itemIndex]: { ...day.todaysMenu[itemIndex], dish: { ...day.todaysMenu[itemIndex].dish, [key]: values.x[key] } } }] } : day) })); }如果我刪除方括號(hào),它只是存儲(chǔ)為對(duì)象。
1 回答

千巷貓影
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
你會(huì)想要改變:
todaysMenu: [{
...day.todaysMenu,
[itemIndex]: {
...day.todaysMenu[itemIndex],
dish: {
...day.todaysMenu[itemIndex].dish,
[key]: values.x[key]
}
}
}]
...至:
todaysMenu: day.todaysMenu.map((item, index) =>
index === itemIndex
? { ...item, dish: { ...item.dish, [key]: values.x[key] } }
: item
)
您目前擁有的是使用一個(gè)對(duì)象創(chuàng)建一個(gè)數(shù)組,而不是將數(shù)組轉(zhuǎn)換為修改后的數(shù)組。
添加回答
舉報(bào)
0/150
提交
取消