Здесь:
...state.results['FORMS'].map(…),
вы объединяете массив обновленных элементов (обновленный FORMS
) со свойством results
состояния (объект , содержащий FORMS
).
Если бы категории и идентификаторы элемента были числами, конечный результат выглядел бы так (отображается только results
):
{
'0': { categories: 15, id: 10 },
'1': { categories: 7, id: 11 },
FORMS: [ /* its original content before the update */ ],
}
Вместо этого вы должны установить свойство FORMS
нового состояния для вашего обновленного массива:
return {
// loaded, loading…
results: {
...state.results,
FORMS: state.results.FORMS.map(
item => item.id === form.id ? {
...item,
categories: form.categories,
} : item,
),
},
}