如何使用store.select()在Angular2中使用ngrx获取根级别状态?

如何使用store.select()在Angular2中使用ngrx获取根级别状态?,angular,ngrx,Angular,Ngrx,我已经为这个问题挣扎了一段时间了 我正在尝试使用Angular2中的ngrx获取对存储在redux存储中的对象的引用。我有以下情况: import {User} from "./user"; export class SessionState{ constructor( public user: User, public currentCompanyId: number, public currentDepartmentId: number ) { } } 然

我已经为这个问题挣扎了一段时间了

我正在尝试使用Angular2中的ngrx获取对存储在redux存储中的对象的引用。我有以下情况:

import {User} from "./user";

export class SessionState{
  constructor(
    public user: User,
    public currentCompanyId: number,
    public currentDepartmentId: number
  ) { }
}
然后输入以下代码:

export class SidebarComponent implements OnInit {

  constructor(private sessionStore: Store<SessionStore>, private router: Router,) { }

  sessionState: Observable<SessionState>;
  user: Observable<User>;
  currentCompanyId: Observable<number>;
  currentDepartmentId: Observable<number>;

  ngOnInit(){
    this.sessionState = this.sessionStore.select("sessionState");
    this.user = this.sessionStore.select("user");
    this.user.subscribe(user => console.log(user));
    this.sessionState.subscribe(state => console.log(state));
  }
}
导出类SidebarComponent实现OnInit{
构造函数(私有会话存储:存储,私有路由器:路由器,{}
会话状态:可见;
用户:可观察;
当前公司ID:可观察;
currentDepartmentId:可观察;
恩戈尼尼特(){
this.sessionState=this.sessionStore.select(“sessionState”);
this.user=this.sessionStore.select(“用户”);
this.user.subscribe(user=>console.log(user));
subscribe(state=>console.log(state));
}
}
现在用户打印的很好,但是整个sessionState给出了一个未定义的值。我尝试过使用select(“”)、select()和该方法的其他替代方法,但似乎没有找到获取整个sessionState的可观察性的正确方法

这里出了什么问题?

导出类SidebarComponent实现OnInit{
export class SidebarComponent implements OnInit {


  constructor(private sessionStore: Store<SessionStore>, private router: 
Router,) { }

  user: Observable<User>;
  currentCompanyId: Observable<number>;
  currentDepartmentId: Observable<number>;

  ngOnInit(){
    this.sessionStore.subscribe(state => console.log(state));

    this.user = this.sessionStore.select(state => state.user);
    this.user.subscribe(user => console.log(user));

  }
}
构造函数(专用会话存储:存储,专用路由器: 路由器,{} 用户:可观察; 当前公司ID:可观察; currentDepartmentId:可观察; 恩戈尼尼特(){ subscribe(state=>console.log(state)); this.user=this.sessionStore.select(state=>state.user); this.user.subscribe(user=>console.log(user)); } }
导出类SidebarComponent实现OnInit{
构造函数(专用会话存储:存储,专用路由器:
路由器,{}
用户:可观察;
当前公司ID:可观察;
currentDepartmentId:可观察;
恩戈尼尼特(){
subscribe(state=>console.log(state));
this.user=this.sessionStore.select(state=>state.user);
this.user.subscribe(user=>console.log(user));
}
}

如果需要整个状态,则不需要选择
。默认情况下,存储将发出整个状态。我无法将
可观察的
存储
匹配,订阅存储也会给出未定义的状态…如果您想要整个状态,则不需要选择
。默认情况下,存储将发出整个状态。我无法将
可观察的
存储
匹配,订阅该存储也会给出未定义的。。。