【发布时间】:2023-01-31 20:46:53
【问题描述】:
我有一个数组状态。该数组内部嵌套了一个数组。这就是我的状态:
const [record, setRecord] = useState([
{
name: "Pink Floyd",
rank: 1,
songs: [
{
name: "A",
year: "1970",
downloads: "10",
},
{
name: "B",
year: "1980",
downloads: "20",
},
{
name: "C",
year: "1990",
downloads: "5",
},
],
},
{
name: "Led Zeppelin",
rank: 2,
songs: [
{
name: "D",
year: "1965",
downloads: "25",
},
{
name: "E",
year: "1975",
downloads: "65",
},
{
name: "F",
year: "1985",
downloads: "90",
},
],
},
]);
我可以通过这样做来更新排名属性:
setRecord(prevRecord =>
prevRecord.map((el) =>
el.name == "someName" ? { ...el, rank: "someRank" } : el
)
);
现在,我想更新嵌套在歌曲中的“下载”属性。如何更新下载属性?
【问题讨论】:
-
{ ...el, rank: "someRank" , songs: el.songs.map(song => ({ ...song, downloads: 10 }))}
标签: javascript reactjs arrays react-hooks react-functional-component