I'm using ngrx
entity adapter selectAll
. and it returns an observable list of type Object (event).
I want to get only the last 10 Objects of it .
this is my selector
const geteventsFeatureState = createFeatureSelector<EventState>(
"events"
);
export const getEvents = createSelector(
geteventsFeatureState,
eventAdapter.getSelectors().selectAll
);
export const getEventLoading = createSelector(
geteventsFeatureState,
(state: EventState) => state.loading
);
export const getEventLoaded = createSelector(
geteventsFeatureState,
(state: EventState) => state.loaded
);
export const getError = createSelector(
geteventsFeatureState,
(state: EventState) => state.error
);
this is my component.ts
ngOnInit() {
this.event$ = this.store.pipe(select(fromEvent.getEvents));
}
it's already returns all my Object and I want to select the last 10 items Anyone can help me
You can use selectors with props to get data based on some external conditions.In the selector we can pass props to the selector function like this:
selector.ts
export const getLastEvents = createSelector(
getCounterValue,
(events, props) => events.slice(Math.max(events.length - props, 1))
);
In component you can pass props to select method to get last 10 data.
ngOnInit() {
this.event$ = this.store.pipe(select(fromEvent.getLastEvents,10));
}