Я пытаюсь выбрать объект по идентификатору из состояния объекта. Ниже мой редуктор.
export interface MessageState extends EntityState<Message> {
// additional entities state properties
loaded: boolean;
loading: boolean;
}
export const adapter: EntityAdapter<Message> = createEntityAdapter<Message>({
selectId: (msg: Message) => msg.messageId,
});
export const initialState: MessageState = adapter.getInitialState({
// additional entity state properties
loaded: false,
loading: false,
});
export function reducer(state = initialState, action: MessageActionsUnion): MessageState {
switch (action.type) {
case MessageActionTypes.UPSERT_Message: {
return { ...state, loading: true, loaded: false };
}
case MessageActionTypes.UPSERT_Message_SUCCESS: {
return adapter.upsertOne(action.payload.Message,
{
...state, loaded: true, loading: false,
});
}
default: {
return state;
}
}
}
Ниже мой файл index.ts
export interface State extends fromRoot.AppState {
queueModule: QueueState;
}
export interface QueueState {
msgHeaders: fromMsgHeaders.MessageHeaderState
}
export const reducers: ActionReducerMap<QueueState> = {
msgHeaders: fromMsgHeaders.reducer
};
export const getQueueState$ = createFeatureSelector<QueueState>('queueModule');
Я пытаюсь сформировать селектор, когда переданный Id вернет значение из сущности.
export const selectMessages = createSelector(
fromFeatures.getQueueState$,
(state: fromFeatures.QueueState) => state.msgs
);
export const {
selectAll: selectAllMessages,
selectEntities: selectMessagesEntities,
selectIds: selectMessagesIds,
selectTotal: selectMessagesTotal
} = adapter.getSelectors(selectMessages);
Я посмотрел на многие ресурсы, но ни один не ясно, как выбрать объект, передав идентификатор.