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.input
时 this.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');
});
}
我有一个绑定到 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.input
时 this.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');
});
}