如何使用 ngrx 中的数组更新状态
how to update state with arrays in 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),
/*...*/
但它并没有像预期的那样工作。
我做错了什么?提前致谢
colecciones 是一个对象,您必须将每个数组分配给状态数组:
on(CollectionActions.loadCollectionsSucess,
(state, { colecciones }) => {
return {
...state,
lista_creadas: colecciones.lista_creadas
lista_asignadas: colecciones.lista_asignadas
lista_grupos: colecciones.lista_grupos
};
}
),
使用展开运算符有一个快捷方式:
on(CollectionActions.loadCollectionsSucess,
(state, { colecciones }) => {
return {
...state,
...colecciones
};
}
),
但是由于您的操作包含相当于下一个状态的有效负载,您还可以这样做:
on(CollectionActions.loadCollectionsSucess,
(state, { colecciones }) => {
return colecciones
}
),
我正在尝试迁移我的应用程序以使用 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),
/*...*/
但它并没有像预期的那样工作。
我做错了什么?提前致谢
colecciones 是一个对象,您必须将每个数组分配给状态数组:
on(CollectionActions.loadCollectionsSucess,
(state, { colecciones }) => {
return {
...state,
lista_creadas: colecciones.lista_creadas
lista_asignadas: colecciones.lista_asignadas
lista_grupos: colecciones.lista_grupos
};
}
),
使用展开运算符有一个快捷方式:
on(CollectionActions.loadCollectionsSucess,
(state, { colecciones }) => {
return {
...state,
...colecciones
};
}
),
但是由于您的操作包含相当于下一个状态的有效负载,您还可以这样做:
on(CollectionActions.loadCollectionsSucess,
(state, { colecciones }) => {
return colecciones
}
),