Я думаю, что копирование выполняется дважды: в первый раз, когда вы объявляете items
, затем, когда вы возвращаете новое состояние.
Если разделение самого состояния не является жизнеспособным вариантом, то я предлагаю уменьшить количество копий до одного:
export default function itemReducer(state = initialState, action) {
case ITEM_FETCH_IMPACT_UPDATE:
return {
...state,
items: state.items.map((item, ind) => {
if(ind===action.payload.index){
return {
...item,
overallIsLoading:true
}
} else {
return item;
}
})
}
}