gpt4 book ai didi

javascript - 数组上的 redux reducer 扩展运算符不替换旧状态

转载 作者:行者123 更新时间:2023-12-03 04:24:57 24 4
gpt4 key购买 nike

在我的 redux reducer 中,我更新了专辑列表两次。我希望第二个列表覆盖提供的第一个列表,但是,这不起作用,并且专辑第二次调用都会添加到第一次调用中。

我对下面的展开运算符是否有什么做得不正确的地方?请参阅下面我的 reducer 。

export default (state = [], action) => {

switch(action.type) {

case 'GET_ALBUM_NAME_SUCCESS':

return [
...state,
...action.albums.map(album => {
const newAlbum = {...album};
delete(newAlbum.selections);
return newAlbum;
})
];

default:

return state;
}

最佳答案

如果您想向状态添加值,则不需要对要添加的值使用展开运算符,

export default (state = [], action) => {

switch(action.type) {

case 'GET_ALBUM_NAME_SUCCESS':

return [
...state,
action.albums.map(album => {
const newAlbum = {...album};
delete newAlbum.selections;
return newAlbum;
})
];

default:

return state;
}

但是,如果您只想覆盖以前的状态,则根本不需要展开运算符。

export default (state = [], action) => {

switch(action.type) {

case 'GET_ALBUM_NAME_SUCCESS':

return [
action.albums.map(album => {
const newAlbum = {...album};
delete newAlbum.selections;
return newAlbum;
})
];

default:

return state;
}

关于javascript - 数组上的 redux reducer 扩展运算符不替换旧状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43784929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com