我尝试在页面上进行更改,一旦addListItem运行了一个名为" list"的数组。这实际上是一个redux状态,需要更新。我设法更新它,但我返回一个对象而不是数组。我需要返回一个数组,但我不知道如何重构代码来实现它。
/**
* Add Item
*/
case 'playlist/addListItem_success': {
return {
...state,
list: {
...state.list,
[action.meta.position]: {
...state.list[action.meta.position],
status: true
}
}
}
}
答案 0 :(得分:2)
要返回数组,您必须使用数组扩展语法(例如[...someArray]
)而不是对象传播,但您无法使用它来更新特定索引。使用map
,您可以优雅地表达您的需求:
return {
...state,
list: state.list.map((e, i) => i === action.meta.position ? {...e, status: true} : e)
};