是否存在从NGRX存储的多个片中获取数据的最佳实践?我正在使用NGRX实体,并且对公司,用户,供应商和订单有一个细分,在特定的组件中,我需要访问所有4个。我尝试了几种不同的方法,但它们似乎都很麻烦。
我应该使用来自多个实体的4个单独的选择器,还是最好在根级别创建一个选择器,并包含详细信息页面所需的所有内容?
当前,我正在使用combineLatest
运算符
this.subscription.add(this.store.select(fromUser.getUsers).pipe(
combineLatest([
this.store.select(fromCompanies.selectAll),
this.store.select(fromVendors.selectAll),
this.store.select(fromOrders.getOrders),
]))
答案 0 :(得分:1)
我发现组合选择器的最佳方法是使用选择器,这也是最有效的方法,因为NgRx在此做了一些优化。
createSelector
可以由多个选择器组成,在您的情况下为:
export const foo = createSelector(
fromUser.getUsers,
fromCompanies.selectAll,
fromVendors.selectAll,
fromOrders.getOrders,
(users, companies, vendors, orders) => {
// logic here
}
)
有关更多信息,请参见documented