首页 > 解决方案 > createAction ngrx 方法论

问题描述

我已经研究了很多不同的 createAction 方法,但我对使用哪一种感到困惑。

假设我有一个用于登录的用户名和密码,我在互联网上看到过以下几种方式:

export const myAction = createAction(
    '...',
    props<{ payload: { username: string, password: string }}>
);

对比

export const myAction = createAction(
    '...',
    props<{ username: string, password: string }>
);

我发现第二个更干净,因为我可能有这个:

export const myAction = createAction(
    '...',
    props<userModel>
);

问题是当我注销操作时,类型是第二个示例中的属性之一,这意味着如果 userModel 包含类型属性,我可能会遇到冲突。另一方面,第一个示例意味着我会在我的应用程序中散布有效负载这个词,这似乎过分了。

第二个示例的stackoverflow示例:

你如何检测 NgRx createAction 重复类型

标签: ngrx

解决方案


问题是当我注销操作时,类型是第二个示例中的属性之一,这意味着如果 userModel 包含类型属性,我可能会遇到冲突

如果发生这种情况,NgRx 会警告您,这将引发错误并且您将无法编译。payload属性是在引入之前使用的模式,createAction这就是为什么你会看到很多关于payload属性的例子。


推荐阅读