ngrx 中的可观察数组为空

Observable array is empty in ngrx

我有一个绑定到 html 中的数据网格的可观察数组,它工作正常。我的 component.ts 得到这样的数组:

this.data = this.store.pipe(select(selectData));

其中 selectData 是 ngrx 操作。我试图根据数据数组中的第一个值在数据网格外设置 input 的值。我正在尝试

this.input= this.data.pipe(map(m => 
      moment(new Date(m[0].timestamp / 1000000)).format('DD-MM-YYYY HH:mm:ss')));

当我调试它时,我可以看到 moment(new Date... 行上的断点。但是,此时的m是一个空数组。上面的两个语句都声明在ngOnInit like

ngOnInit(): void {
    this.data = this.store.pipe(select(selectData));
    this.input= this.data.pipe(map(m => 
      moment(new Date(m[0].timestamp / 1000000)).format('DD-MM-YYYY HH:mm:ss')));
  }

看起来在实际填充数组之前已解析可观察对象,导致 input 变为 undefined。如何确保在我尝试设置 this.inputthis.data 数组实际上已完全填充?

您需要订阅才能让选择器从商店中获取数据。进行以下更改:

ngOnInit(): void {
   this.store.pipe(select(selectData))
      .subscribe(m => {
         this.input = moment(new Date(m[0].timestamp / 1000000))
                          .format('DD-MM-YYYY HH:mm:ss');
      });
}