Я использую хранилище ngrx для сложной структуры хранилища, как показано в коде:
model.ts
export interface ITableState {
tables: ITables,
selectedTableId: number
}
export interface ITables {
[id: number]: ITable
}
export interface ITable {
menus: IMenus,
selectedMenuId: string
}
export interface IMenus {
dishId: number,
dishName: string
}
reducer.ts
case tables.ActionTypes.ADD_MENU: {
var menuToAdd = <IAddMenu>action.payload;
return {
...state,
tables: {
...state.tables,
[menuToAdd.tableId]: {
...state.tables[menuToAdd.tableId],
menus: {
...state.tables[menuToAdd.tableId].menus,
[menuToAdd.menuId]: menuToAdd.menu
}
}
}
}
}
Я подписываюсь на этот магазин, как показано ниже:
export const getTableStructureState = (state: State) => state.table;
public tableStructureState$ = this.appState$.select(store.getTableStructureState);
this.tableSandbox.tableStructureState$.subscribe(tableDataState => {
console.log(tableDataState.tables[tableDataState.selectedTableId].menus)
});
Итак, выполнив действие ADD_MENU, я получаю все меню в магазине.
Но мой вопрос
если предположить, что я добавил два меню, а затем снова я добавил третье меню
есть ли способ узнать, какое меню было последним
добавлено. или простыми словами, какие изменения произошли в государстве.
Я много искал, но не нашел решения.
Пожалуйста, дайте мне знать, если это возможно или нет.
Заранее спасибо за помощь.