【发布时间】:2018-10-11 02:54:29
【问题描述】:
当使用 NGXS @Select 装饰器时,访问状态模型上定义的属性的正确方法是什么。
例如,定义了以下状态:
export interface UserStateModel {
firstname: string;
lastname: string;
}
@State<UserStateModel>({
name: 'user',
defaults: {}
})
export class UserState {..}
如果我想像这样在组件中选择用户状态:
..export class MyComponent {
@Select(UserState) user$: Observable<UserState>;
ngOnInit(){
this.user$.subscribe(u => {
//do something with user state
console.log(u.firstname);
});
}
}
我收到打字稿错误,因为UserState 上不存在firstname 属性(因为它是在相关模型类型上定义的)。如果我在组件 html 模板中引用该属性,那么我没有任何问题。
关于选择器的使用有一个related discussion,但我只是想确认一下我对当前版本的期望(以及我是否正确地执行此操作!)。
我正在使用"@ngxs/store": "^3.0.0-rc.2",
【问题讨论】:
-
我现在想知道是否正确的方法是将我的选择器声明为
@Select(UserState) user$: Observable<UserStateModel>。
标签: angular typescript ngxs