NGRX Entity addOne заменяет объект в текущем состоянии

Я пытаюсь выполнить операцию вставки и следую этой статье https://angularfirebase.com/lessons/ngrx-entity-feature-modules-tutorial/

К сожалению, вместо добавления нового объекта в текущее состояние предыдущий заменяется новым. Может кто-то помочь мне с этим?

введите здесь описание изображения

Gif выше представляет поведение реального кода.

файл действия:

export enum BookingActionTypes {
    TicketAdded = '[Booking API] Ticket Added' 
}

export class TicketAdded implements Action {
    readonly type = BookingActionTypes.TicketAdded;
    constructor(public payload: {orderedTicket: OrderedTicket}) { }
}

export type BookingActions = TicketAdded;

файл редуктора:

export interface BookingState extends EntityState<OrderedTicket> { }

export const adapter: EntityAdapter<OrderedTicket> = createEntityAdapter<OrderedTicket>();

export const initialBookingState: BookingState = adapter.getInitialState();

export function bookingReducer(state = initialBookingState, action: BookingActions) {
    switch (action.type) {
        case BookingActionTypes.TicketAdded:
            return adapter.addOne(action.payload.orderedTicket, state);

        default: {
            return state;
        }
    }
}

person Mateusz Gebroski    schedule 30.07.2019    source источник
comment
Думаю, это правильно. Вы находитесь на вкладке diff, поэтому она будет показывать только разницу между текущим и предыдущим состояниями.   -  person Tony Ngo    schedule 31.07.2019


Ответы (1)


Это должно сработать для вас ... Я обновил ваш редуктор ....

export function bookingReducer(state = initialBookingState, action: BookingActions) {
    switch (action.type) {
        case BookingActionTypes.TicketAdded:{
            return {
                ...state, {...adapter.addOne, ...action.payload.orderedTicket}
                // this will work like 
                // var test = {data: 1}
                // var test2 = {test: 2}
                // {...test, ...test2} = {data:1,test:2 }
            }
        }
        default: {
            return state;
        }
    }
}
person nks    schedule 30.07.2019