Мой селектор ngrx возвращает функцию, когда я подписываюсь на нее - PullRequest
0 голосов
/ 28 мая 2019

У меня есть следующий код

import { RootStoreState, ProductStoreSelectors} from 'src/app/stores';  

this.store$.pipe(select(ProductStoreSelectors.getSelectedProduct())).subscribe((value) => {
    console.log(value)
})

или я также попытался

this.store$.select(ProductStoreSelectors.getSelectedProduct).subscribe((value) => {
        console.log(value)
      }),

В принципе, я хотел бы подписаться на мое состояние и вызвать функцию, когда мой выбранный продукт в моем магазинеизменить.

export const featureAdapter: EntityAdapter<IProduct> = createEntityAdapter<IProduct>({
  selectId: model => model.id,
});

export const selectProductState: MemoizedSelector<object, State> = createFeatureSelector<State>('products');

export const getSelectedProduc = () => createSelector(
  selectProductState,
  (state: State) => state.selectedProduct
);

и мой магазин представляет собой EntityState продуктов с одним выбранным

export interface State extends EntityState<IProduct> {
  selectedProduct: IProduct;
}

, но проблема в том, что

журнал консоли возвращает мне функцию дажекомпилятор говорит, что это IProduct

function memoized() {
        if (!lastArguments) {
            lastResult = projectionFn.apply(null, arguments);
            lastArguments = arguments;
            return lastResult;
        }
        if (!isArgumentsChanged(arguments, lastArguments, isArgumentsEqual)) {
            return lastResult;
        }
        lastArguments = arguments;
        var newResult = projectionFn.apply(null, arguments);
        if (isResultEqual(lastResult, newResult)) {
            return lastResult;
        }
        lastResult = newResult;
        return newResult;
    }
...