Каков наилучший/правильный способ обновления вложенного массива данных в магазине с помощью сокращений?Обновление вложенных данных в магазине redux
Мой магазин выглядит следующим образом:
{
items:{
1: {
id: 1,
key: "value",
links: [
{
id: 10001
data: "some more stuff"
},
...
]
},
...
}
}
У меня есть пара асинхронных действий, которые полностью обновляет items
объект, но у меня есть еще одна пара действий, которые я хочу, чтобы обновить определенный links
массив.
Мой редуктор в настоящее время выглядит следующим образом, но я не уверен, что это правильный подход:
switch (action.type) {
case RESOURCE_TYPE_LINK_ADD_SUCCESS:
// TODO: check whether the following is acceptable or should we create a new one?
state.items[action.resourceTypeId].isSourceOf.push(action.resourceTypeLink);
return Object.assign({}, state, {
items: state.items,
});
}
Обратите внимание, что update() устарел в пользу https://github.com/kolodny/immutability-helper –
Мне любопытно, почему вы не решили использовать 'Object.assign()'? – HussienK
@HussienK Разве 'Object.assign' выполняет мелкую копию? –