Я хотел хранить объекты с их методами с помощью @ ngrx / entity.Это может вызвать проблемы в приложении?(Угловой 2-7)
mission.class.ts:
import { v4 as uuid} from 'uuid';
export class Mission {
id: string;
title: string;
completed: boolean;
constructor (missionTitle: string, completed?: boolean) {
this.id = uuid();
this.title = missionTitle;
this.completed = completed;
}
complete() {
this.completed = true;
}
}
Есть класс с методом 'полная' миссия.Я хочу сохранить его с помощью @ ngrx / entity.
missions.actions.ts:
export enum MissionActionTypes {
AddMission = '[Mission] Add Mission'
}
export class AddMission implements Action {
readonly type = MissionActionTypes.AddMission;
constructor (public payload: { mission: Mission }) {}
}
Существует действие для добавления объекта миссии с его методом в @ ngrx / store
missions.reducer.ts:
export interface MissionsState extends EntityState <Mission> {
}
export const adapter: EntityAdapter <Mission> = createEntityAdapter<Mission>();
export const initialState: MissionsState = adapter.getInitialState();
export function reducer(state = initialState, actions: MissionActions) {
switch (actions.type) {
case MissionActionTypes.AddMission:
return adapter.addOne(actions.payload.mission, state);
default:
return state;
}
}
Когда я выбираю объект Миссии из магазина с помощью select (), я могу вызвать его «полный» метод.Но я не уверен, что этот подход вызовет какие-либо проблемы в приложении в будущем ..