@RomanSS

Правильный ли способ обновления данных в reducer?

Есть такая вложенность в редюсере. 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) Есть ли способ красивее это сделать?
  • Вопрос задан
  • 245 просмотров
Пригласить эксперта
Ответы на вопрос 2
@shelomanovd
reducer это управление состоянием?
Ответ написан
@SuperOleg39ru
Front-end разработчик
Сделайте декомпозицию редьюсера на несколько поменьше.
ссылка
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы