Есть такая вложенность в редюсере. key1_id1 и subkey1_id1 — это id значений, таких значений может быть много
{
key1_id1: {
subkey1_id1: {
bd: {
isLoading: false,
data: {}
}
}
}
}
Возникла проблема с обновлением значения bd, чтобы не стирались данные из data при обновлении isLoading приходится делать кучу вложенностей с Object.assign. Примерно как это выглядит:
action.payload.key='key1_id1';
action.payload.subkey='subkey1_id1';
action.payload.data="какой-то объект";
case UPDATE_DATA:
return Object.assign({},state,
{
[action.payload.key]: Object.assign(
{},
state[action.payload.key],
{[action.payload.subkey]:
Object.assign(
{},
(state[action.payload.key])?state[action.payload.key][action.payload.subkey]:{},
action.payload.data
)
}
)
});
Тут вроде нужна еще одна вложенность, но вопрос не в этом, как быть в таких ситуациях?
1) Правильно ли обновлять данные такими вложенностями? Сильно ли скажется на производительности если объектов будет много?
2) Есть ли способ красивее это сделать?