網站搜尋

angular - 在 ngrx store 中使用實體組合選擇器


我目前正在使用 ngrx 實體進行 ngrx store 專案開發,我希望能夠組合一些選擇器,像這樣:

export const selectProductById = (productId: number) => createSelector(
  selectProductState,
  productsState => productsState.entities[productId]
);

export const selectCurrentProduct = createSelector(
  selectProductState,
  productsState => productsState.entities[productsState.selectedProductId]
);

我想在 selectCurrentProduct 選擇器中使用 selectProductById 選擇器,像這樣:

// doesn't work
export const selectCurrentProduct = createSelector(
  selectProductState,
  productsState => selectProductById(productsState.selectedProductId)
);

語法會是什麼?這會在我嘗試使用 selectCurrentProduct 選擇器時導致編譯錯誤:

類型 'Observable>' 無法指派給類型 'Observable'

更新

感謝提供所有的連結和資料,但它們並沒有真正解決我的問題。我想使用 createSelector() 創建一個選擇器,並使用另一個同樣由 createSelector() 創建的選擇器。請參見我上面的假代碼。我正嘗試使用 selectProductById 選擇器來使用 selectProductById。