我在Angular 2和ngrx / store1或2中开发了Angular应用程序(我没有package.json或node_moduels)。我试图在Angular 5和ngrx / store 5.1.0中设置该应用程序。正如所料,最新版本中没有可用的东西。其中一个关键是不起作用的是Action没有有效载荷。如果我使用有效负载实例化Action,则返回"错误TS2339:属性' payload'类型'行动';"我在ngrx / store库中跟踪了Action代码,实际上,Action接口定义如下。
export interface Action {
type: string;
}
我在互联网上搜索了很多关于新ngrx /商店的信息,但是我找不到答案,有没有人有关于它的一些信息?
答案 0 :(得分:3)
实际上它已从ngrx/store
的新版本中删除。但是有一些方法可以自己部署它。检查this github issue,人们已经提出了不同的有用解决方案。
话虽如此,我最喜欢的解决方案是将Action
接口扩展到这样的新通用接口:
export interface NewAction<T> extends Action {
type: string;
payload: T;
}
然后您就可以使用它:
ExampleAction: NewAction<boolean> = {
type: 'myType',
payload: true
};
答案 1 :(得分:0)
签出迁移文档 https://github.com/ngrx/platform/blob/master/MIGRATION.md
他们注意到接口上的payload属性已从Action
中删除,您需要将操作转换为适当的类型以访问payload
属性
答案 2 :(得分:-1)
可以将有效内容属性添加到您的操作中。
如果你的行动有有效载荷:
export class ActionWithPayload implements Action {
readonly type = 'Action With Payload';
constructor(payload: string) {}
}