Я использую Redux
с Reactjs
.
В соответствии с документацией Redux :
возвращать новые объекты состояния вместо изменения предыдущего состояния.
У меня естьобъект с его текущим состоянием как:
state = [..., {id: 6, details: []}, ..., ...]
, и у меня есть массив ключей (все строки и уникальные), как это:
list: ["A", "B", "C"]
В javascript
, если мне нравитсяэто:
for (const key of list) {
exampleDetails[key] = null
}
Я получаю желаемый результат:
exampleDetails // ["A": null, "B": null, "C": null]
exampleDetails["A"] // null <= what I actually need
Но как получить это следующее состояние путем редукции, то есть без мутации?
switch(state = [], action) {
case 'MY_ACTION':
return state.map(obj => {
if (obj.id === action.id) {
return {
id: obj.id,
details: [
...obj.details,
/* what to do here? where list is => action.list */
]
}
} else return obj
})
default:
return state
}
РЕДАКТИРОВАТЬ
Я не хотел сказать, что я что-то писал в коде:
["A": null, "B": null, "C": null]
Вот что я получаю в качестве вывода в консоли браузера: