Я начал немного играть с редуксом, и я до сих пор поражен. Моя проблема сейчас заключается в том, что моя новая функция-редуктор меняет тип одной переменной состояния, и я не хочу этого.
Состояние должно иметь такую форму:
Я хочу удалить только объект из массива jsons:
pseudo:
delete state.items[item_index].jsons[json_to_delete_index]
В итоге я получил этот редуктор, который теперь возвращает состояние элемента как объект, а не как массив.
case DELETE_JSON:
const item_index = state.items.findIndex((url) => url.url_id === action.payload.url_id);
const json_index = state.items[item_index].jsons.findIndex((json) => json.json_id === action.payload.json_id);
return {
...state,
items: {
...state.items,
[item_index]: {
...state.items[item_index],
jsons:
[
...state.items[item_index].jsons.splice(0, json_index),
...state.items[item_index].jsons.splice(json_index + 1)
]
}
}
};
До сих пор я пробовал разные подходы, но изменение состояний внутри сильно вложенных объектов все еще похоже на пытку с избыточностью. Может кто-нибудь знает способ написать это?