Неизменяемый JS: обновление вложенного динамического объекта

Мое начальное состояние:

export const initialState = fromJS({
  current: {},
  page: {
    loading: false,
    isFirstLoaded: false,
  },
  meta: {},
});

В My reducer, поскольку я определил вложенную структуру для page,

state.setIn(['page', 'loading'], true);

работает отлично.

Поскольку я не определил вложенную структуру для current или meta

state.setIn(['current', 'status'], 'done')

выдает ошибку "Неверный путь к ключу"

Когда я зарегистрировал состояние,

{
   current: {..with properties including status is there as object..},
   page: Map, // <--- why this alone being as Immutable Map,
   meta: {}, // <--- This is also being as plain object
}

person Kamalakannan J    schedule 09.07.2018    source источник
comment
Когда вы делаете state.setIn...   -  person Safi Nettah    schedule 09.07.2018
comment
Я ответил на очень похожий вопрос здесь: stackoverflow.com/questions/43515723/   -  person Jevgeni    schedule 11.07.2018


Ответы (1)


Вы должны иметь возможность использовать метод mergeIn в своем случае согласно следующей документации: http://facebook.github.io/immutable-js/docs/#/Map/mergeIn.

Надеюсь, это поможет!

person Aibu    schedule 11.07.2018