angular - 从 ngrx 选择器获取数据

标签 angular ngrx ngrx-store

我尝试使用此代码从 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/

相关文章:

javascript - NGRX Effect withLatestFrom Typescript 错误 ts2345 故障排除

angular - 如何在 ag-grid 中加载数据时避免 "no rows"消息

node.js - Firebase:node-tar 或 npm 与此版本的 Node.js 不兼容

javascript - 如何动态删除并返回数组中的两个项目?

angular - 如何查看ngIf是否生效

javascript - 如何使用 rxjs 对先前的项目链接多个 .map() 调用

node.js - 如何在 Linux VM 中运行 Node 项目?

Angular 6 ngrx 商店测试 : cannot read ids of undefined

angular - 如何通过 ngrx 存储中的单个操作更新多个 reducer 的状态?

angular - 从组件 ngrx 更改存储状态