簡體   English   中英

如何通過 id 從 ngrx-entity 商店中選擇唯一實體

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM