gpt4 book ai didi

angular - 我可以将对象及其方法存储在@ngrx 中吗

转载 作者:太空狗 更新时间:2023-10-29 17:37:32 25 4
gpt4 key购买 nike

我想用 @ngrx/entity 存储对象及其方法。它会在应用程序中引起任何问题吗? ( Angular 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() 从商店中获取 Mission 对象时,我可以调用它的“完成”方法。但我不确定这种方法是否会在未来的应用程序中引起任何问题..

最佳答案

是的,这是可能的,但这并不意味着您应该这样做。

  • Action 应该是可序列化的(方法在序列化过程中丢失)
  • 选择器应该是纯的(它不应该调用副作用,它应该只从状态中读取日期)

关于angular - 我可以将对象及其方法存储在@ngrx 中吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53613672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com