как обновить состояние с массивами в ngrx

Я пытаюсь перенести свое приложение на ngrx. Одна из первых функций - загрузка моего фактического контента и его отображение, но у меня есть некоторые проблемы.

Я определил это в своем редукторе:

export const collectionFeatureKey = 'colecciones';

export interface CollectionsState {
  lista_creadas: Array<Collection>;
  lista_asignadas: Array<Collection>;
  lista_grupos: Array<Collection>;
}

export const initialState: CollectionsState = {
  lista_creadas: [],
  lista_asignadas : [],
  lista_grupos: []
};

Я подготовил и сделал так, что получаю информацию из API. ИТ работают нормально. Но я не знаю, как присвоить значение трех массивов состоянию, на самом деле я делаю это:

const collectionsReducer = createReducer(
    initialState,
    on(CollectionActions.loadCollections, state => state),
    on(CollectionActions.loadCollectionsSucess,
      (state, { colecciones }) => {
        return {
          ...state,
          colecciones
        };
      }
    ),
    on(CollectionActions.loadCollectionsError, state => state),
/*...*/

Но это работает не так, как ожидалось.

Что я делаю не так? заранее спасибо

1 ответ

Решение

Colecciones - это объект, и вам нужно будет присвоить каждый массив массиву состояния:

   on(CollectionActions.loadCollectionsSucess,
      (state, { colecciones }) => {
        return {
          ...state,
          lista_creadas: colecciones.lista_creadas
          lista_asignadas: colecciones.lista_asignadas
          lista_grupos: colecciones.lista_asignadas
        };
      }
    ),

Для этого есть ярлык с оператором распространения:

   on(CollectionActions.loadCollectionsSucess,
      (state, { colecciones }) => {
        return {
          ...state,
          ...colecciones
        };
      }
    ),

Но поскольку ваше действие содержит полезную нагрузку, которая эквивалентна следующему состоянию, вы также можете:

  on(CollectionActions.loadCollectionsSucess,
      (state, { colecciones }) => {
        return colecciones
      }
    ),
Другие вопросы по тегам