Добрый день!
Разбираюсь с Redux. Подскажите, пожалуйста, как можно иммутабельно вернуть объект в данном и похожих случаях! Смысл в том, что при проектировании приложения возникает объект состояния с неким уровнем вложенности. Пока мне не понятно, как можно изменить булевы свойства внутри вложенных объектов! Когда делаю, как в коде ниже (экшн 'TOGGLE_COMPLETED' ) в React вываливается ошибка из-за того, что map() не успевает вернуть новый измененный массив.
//reducer.js
const initState = {
todo: []
}
export default function reducer (state = initState, action) {
switch(action.type){
case 'ADD_TODO':
return Object.assign({}, state, {
todo: [
...state.todo,
{
id: action.id,
text: action.text,
completed: false
}
]
})
case 'TOGGLE_COMPLETED':
return Object.assign({}, state, {
todo: state.todo.map((item) => {
if(item.id == action.id) {
item.completed = !item.completed
}
})
})
default:
return state
}
}
Буду признателен за помощь!!!