Muh*_*ooq 1 ngrx typescript-typings typescript2.0 angular ngrx-store
我按照 Mike Ryan 在本视频中的建议为我的应用程序创建了独特的操作, 但我有一些操作会导致相同的状态转换。如何在不绕过最佳实践的情况下实现相同的状态转换,即为两个不同的事件调用一个公共操作?
我的行动是
export const rawSignalEditInplace = createAction(
RawSignalsActionTypes.RAW_SIGNAL_EDIT_INPLACE,
props<{ signal: RawSignal }>()
);
export const rawSignalEdit = createAction(
RawSignalsActionTypes.RAW_SIGNAL_EDIT,
props<{ signal: RawSignal }>()
);
Run Code Online (Sandbox Code Playgroud)
我的减速机是
on(rawSignalsActions.rawSignalEditInplace, (state, { signal }) => {
return {
...state,
selectedRawSignal: entitiesSelectors.selectEntities(state)[signal.id]
};
}),
on(rawSignalsActions.rawSignalEdit, (state, { signal }) => ({
...state,
selectedRawSignal: entitiesSelectors.selectEntities(state)[signal.id]
})),
Run Code Online (Sandbox Code Playgroud)
您可以为多个操作创建一个减速器:
on(
rawSignalsActions.rawSignalEditInplace,
rawSignalsActions.rawSignalEdit,
(state, { signal }) => {...}
)
Run Code Online (Sandbox Code Playgroud)
将您的操作分开可以让您更好地跟踪操作的发送位置,并帮助您保持模块化,以防您将来想要更改内容。出于这个原因,我个人推荐多个操作 -> 一个减速器模式,尽管其他操作也可能有效。
| 归档时间: |
|
| 查看次数: |
316 次 |
| 最近记录: |