从 angular observable ngrx/store 获取对象
Get object from angular observable ngrx/store
我从@ngrx/store 获取对象时遇到问题。这段代码用了很长时间都很好,现在好像坏了,不知道为什么。
要存储的对象具有以下结构:
export class UserInfo {
user: string;
token: string;
permissions: string[];
}
此函数将我的对象保存到商店:
saveUserInfo(userInfo: UserInfo) {
this.store.dispatch(new UserInfoActions.Save(userInfo));
}
现在,当我尝试像这样从商店取回对象时:
userInfoStore$: Observable<UserInfo>;
constructor(private store: Store<AppState>) {
this.userInfoStore$ = this.store.select('userInfo').subscribe(user => {
console.log(user)
});
}
所需的输出类似于
{user: "username", token: "token", permissions: []}
但是输出是:
{0: "{", 1: "\"", 2: "u", 3: "s", 4: "e", 5: "r", 6: "\"", 7: ":", 8: "\"", 9: "u", 10: "s", 11: "e", 12: "r", 13: "n", 14: "a", 15: "m", ...}
这是怎么回事? observables
的工作方式有什么变化吗?
Angular v9.1.0
@ngrx/store v9.0.0
这背后的原因是您的减速器正在返回字符串化 userInfo
。检查您从 API 收到的 userInfo
以及您从中返回 userInfo 的减速器。
我从@ngrx/store 获取对象时遇到问题。这段代码用了很长时间都很好,现在好像坏了,不知道为什么。
要存储的对象具有以下结构:
export class UserInfo {
user: string;
token: string;
permissions: string[];
}
此函数将我的对象保存到商店:
saveUserInfo(userInfo: UserInfo) {
this.store.dispatch(new UserInfoActions.Save(userInfo));
}
现在,当我尝试像这样从商店取回对象时:
userInfoStore$: Observable<UserInfo>;
constructor(private store: Store<AppState>) {
this.userInfoStore$ = this.store.select('userInfo').subscribe(user => {
console.log(user)
});
}
所需的输出类似于
{user: "username", token: "token", permissions: []}
但是输出是:
{0: "{", 1: "\"", 2: "u", 3: "s", 4: "e", 5: "r", 6: "\"", 7: ":", 8: "\"", 9: "u", 10: "s", 11: "e", 12: "r", 13: "n", 14: "a", 15: "m", ...}
这是怎么回事? observables
的工作方式有什么变化吗?
Angular v9.1.0 @ngrx/store v9.0.0
这背后的原因是您的减速器正在返回字符串化 userInfo
。检查您从 API 收到的 userInfo
以及您从中返回 userInfo 的减速器。