'。参数 'state' 和 'state' 的类型不兼容,angular,redux,rxjs"/>

首页 > 解决方案 > 类型“T”不可分配给类型“ActionReducer”'。参数 'state' 和 'state' 的类型不兼容

问题描述

我正在尝试在以角度制作的应用程序中使用 redux,但出现以下错误。

//My app-module.ts 

//redux init
export interface AppState {
  destinos: DestinosViajesState;
};

const reducers: ActionReducerMap<AppState> = {
  destinos: reducerDestinosViajes
};

let reducersInitialState = {
    destinos: intializeDestinosViajesState(),
};

//fin redux init

//ESTADO
export interface DestinosViajesState{
    items: DestinoVije[];
    loading: boolean;
    favorito: DestinoVije | null;
} 

export const intializeDestinosViajesState = ()=>{
    return {
        items: [],
        loading: false,
        favorito: null
    }   
}

//ACCIONES
export enum DestinosViajesActionTypes {
  NUEVO_DESTINO = '[Destinos Viajes] Nuevo',
  ELEGIDO_FAVORITO = '[Destinos Viajes] Favorito'
}


//REDUCERS
export function reducerDestinosViajes(
    state:DestinosViajesState,
    action:DestinosViajesActions
) : DestinosViajesState {
    switch (action.type) {
        case DestinosViajesActionTypes.NUEVO_DESTINO: {
          return {
                ...state,
                items: [...state.items, (action as NuevoDestinoAction).destino ]
            };
        }
        case DestinosViajesActionTypes.ELEGIDO_FAVORITO: {
            state.items.forEach(x => x.setSelected(false));
            let fav:DestinoVije = (action as ElegidoFavoritoAction).destino;
            fav.setSelected(true);
            return {
                ...state,
                favorito: fav
            };
        }
    }
    return state;
}

错误

类型 '(state: DestinosViajesState, action: DestinosViajesActions) => DestinosViajesState' 不可分配给类型 'ActionReducer<DestinosViajesState, Action>'。参数 'state' 和 'state' 的类型不兼容。键入'DestinosViajesState | undefined' 不可分配给类型 'DestinosViajesState'。类型“未定义”不可分配给类型“DestinosViajesState”。

预期的类型来自属性 'destinos',它在类型 'ActionReducerMap<AppState, Action>' 上声明

标签: angularreduxrxjs

解决方案


推荐阅读