У меня есть следующий код
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;
}