[英]How to select a unique entity by id from the ngrx-entity store
我在我的 ngrx-entity 中存儲了 prsnls 實體,它被很好地描述為對象數組,如 redux devtool 中所示。
我可以像這樣選擇所有 prsnl 實體:
export const selectAllPrsnls = createSelector(
selectPrsnlState,
prsnlsState => {
const allPrsnls = Object.values(prsnlsState.entities)
return allPrsnls;
}
);
但是我無法通過它的 id 獲得唯一的 prsnl。 這就是我所做的:
export const selectUniquePrsnls = (id:string) => createSelector(
selectPrsnlState,
prsnlsState => {
const uniquePrsnls = Object.values(prsnlsState.entities[id])
return uniquePrsnls;
}
);
唯一的 prsnl 沒有被獲取,因為當我在訂閱 createSelector observable 后 console.log 時,我在控制台中得到未定義。 這就是我訂閱它的方式:
getUniquePersnlValues(id:string){
this.store
.pipe(select(selectUniquePrsnls), map((per) => per))
.subscribe((value: any) => this.uniquePrsnl = value);
console.log('prsnl', this.uniquePrsnl);
}
我認為我無法解決此問題,因為我不太了解在創建選擇器時selectPrsnlState
的作用,例如在 srrenshot 上:
在這種情況下,如何從 prsnls 實體中獲取唯一的 prsnl。 任何幫助深表感謝。 提前致謝。
您可以像這樣通過 id 獲取元素:
export const selectUniquePrsnls = (id:string) => createSelector(
selectPrsnlState,
prsnlsState => prsnlsState.entities[id]
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.