我有两个选择器:
哪种实现如下:
export const selectAuthState = state => state.auth;
export const isLoggedIn = createSelector(
selectAuthState,
auth => auth.loggedIn
);
export const selectUserDetails = createSelector(
selectAuthState,
auth => auth.userDetails
);
他们的状态如下:
export interface State {
loggedIn: boolean,
userDetails: UserDetails
}
export const initialAuthState: State = {
loggedIn: false,
userDetails: undefined
};
我对这段代码有疑问:
ngOnInit() {
this.isLoggedIn$ = this.store.pipe(
select(isLoggedIn)
)
this.userDetails$ = this.store.pipe(
select(selectUserDetails)
)
}
这部分代码很好:
this.isLoggedIn$ = this.store.pipe(
select(isLoggedIn)
)
但这:
this.userDetails$ = this.store.pipe(
select(selectUserDetails)
)
仅与订阅一起触发。
this.store.pipe(
select(selectUserDetails),
map(...rest of code)
).subscribe();
在代码的其他部分,如果没有subscribe(),我也无法使用此selectUserDetails选择器。 起初,我认为这是未定义变量的问题,但是即使用户登录并且userDetails以全局状态填充,它仍然不会被触发。
为什么?
答案 0 :(得分:0)
您确定不使用异步管道处理html文件中的isLoggedIn吗?