我尝试使用此代码从 ngrx 选择器获取数据作为数组
categorys$ = this.store.select(getCategorysSelector)
但我只能获取一个存储对象,然后在控制台中打印结果并得到:
Store {actionsObserver: ActionsSubject, reducerManager: ReducerManager, source: Store, operator: ƒ}
提示:我的数据应该是这样的
1: {_id: '6294cbf9cdd093df47a24d01', name: 'asdasdasd', __v: 0} 2: {_id: '629730d1527c83ae22bc8c62', name: 'asdasd', __v: 0} 3: {_id: '6297311a527c83ae22bc8c65', name: 'asdasd', __v: 0} 4: {_id: '62973120527c83ae22bc8c67', name: 'asdasd', __v: 0}
那么我如何才能以数组形式获取数据???
最佳答案
categorys$ = this.store.select(getCategorysSelector)
会将您从选择器收到的Observable
分配给您的categorys$
变量。
为了实际访问该选择器中的数据,您需要使用 Observable,方法是通过 html 代码中的 async
管道 ( https://angular.io/api/common/AsyncPipe ) 订阅它
<ng-container *ngFor="let category of categorys$ | async">
... do something here
</ng-container>
或者通过在 ts 代码中显式订阅您的 Observable:
const categorySubscription = this.categorys$.subscribe(categories => {
// do something here
});
如果您直接在 typescript 中订阅,请确保取消订阅 OnDestroy
。
关于angular - 从 ngrx 选择器获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72447652/