如何在NGRX商店中修改特定属性?
我有一个像这样的还原器:
export interface IVisitState {
visits?: IVisit;
redirects?: IVisitRedirect;
}
const initialState: IVisitState = {};
const reducer = createReducer(
initialState,
on(fromActions.getVisitsListSuccess, (state, { payload }) => ({
...state,
visits: payload,
})),
on(fromActions.getVisitRedirectsListSuccess, (state, { payload }) => ({
...state,
redirects: payload,
})),
);
访问的界面看起来像:
export interface IVisit {
id: string;
createdAt: string;
lastUpdatedAt: string;
guest: boolean;
}
从后端我获得了createat和lastupdatedat上的日期价值,但是在将它们显示在组件上之前,我已经使用Refert> Refert> RegralatdateField(dateValue:string)将它们显示为重新格式化。
。
我的问题是,如何在还原器上调用RegrialatdateField
Fucntion,以便我不必在多个组件上使用此功能?
I have a reducer like that:
export interface IVisitState {
visits?: IVisit;
redirects?: IVisitRedirect;
}
const initialState: IVisitState = {};
const reducer = createReducer(
initialState,
on(fromActions.getVisitsListSuccess, (state, { payload }) => ({
...state,
visits: payload,
})),
on(fromActions.getVisitRedirectsListSuccess, (state, { payload }) => ({
...state,
redirects: payload,
})),
);
the interface of the visits look like :
export interface IVisit {
id: string;
createdAt: string;
lastUpdatedAt: string;
guest: boolean;
}
From the backend I am getting a date value on createdAt and lastUpdatedAt, but before displaying them on the component I have reformat them using reformatDateField(dateValue: string)
.
My question is that, how can I call reformatDateField
fucntion on reducer, so that I do not have to use this function on several component?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的问题的答案:
更好的答案:
理想情况下,这不是在还原器中进行的,而是在选择器中完成的。
您可以在多个组件中重复使用选择器,因此您还可以避免重复。
旁注,如果很难使用差异语法更新项目 - 请查看 ngrx-immer
The answer to your question:
Better answer:
Ideally, this isn't done in reducers, but in selectors.
You can reuse selectors in multiple components so you also avoid duplication.
Side note, if updating items using the spread syntax is hard - take a look at ngrx-immer