0

我正在尝试执行插入操作,我正在关注这篇文章 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;
        }
    }
}
4

1 回答 1

0

这应该对你有用...... 我已经更新了你的减速器......

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;
        }
    }
}
于 2019-07-30T12:35:25.860 回答