У меня есть объект, который выглядит следующим образом:Update очень глубокий объект с расширенным оператором
state: {
"1": {
"show": false,
"description": "one",
"children": {
"1": { "show": false, "description": "one" },
"2": { "show": false, "description": "one" }
}
},
"2": {
"show": false,
"description": "one",
"children": {
"1": { "show": false, "description": "one" },
"2": { "show": false, "description": "one" }
}
}
}
У меня есть цикл, изменяющие дети «шоу» собственность на противоположное логическое значение. Поэтому я пытаюсь обновить это значение, но не работает.
for (var childKey in state[appClassId].children) {
newState = {
...state,
[appClassId]: {
children: {
[childKey]: { ...state[appClassId].children[childKey], show: !state[appClassId].children[childKey].show}
}
}
переменная «appClassId» - это переменная, которую я получаю от действия.
Как я могу обновить каждый ключ в детской собственности, например state.1.children.1.show
Не могли бы вы посмотреть на [Нормализация государственный Форма] (http://redux.js.org/docs/recipes/reducers/NormalizingStateShape.html) из документация сокращения? Я думаю, что это поможет вам нормализовать ваше состояние и сможет легко его обновить! – cdaiga
Это нормализованный взгляд на пример, который он дает в вашей ссылке. –
На самом деле, как автор этого раздела «Структурирующие редукторы», я думаю, что раздел «Необязательные шаблоны обновлений» более уместен: http://redux.js.org/docs/recipes/reducers/ImmutableUpdatePatterns.html – markerikson