Функция createSelector может получить до 9 параметров - PullRequest
0 голосов
/ 02 июля 2019

Я создал новый селектор:

const getInquiryBasicInfo = createSelector(
getMedia(getInquiryRelatedEntities, ConnectionTypes.InquiryMedia.name),
getJournalist(getInquiryRelatedEntities, ConnectionTypes.InquiryReporter.name),
getReceiveDate,
getResponsDate,
getMediaOutlet,
getInitiatedCount(getInquiryDetails),
getNumberOfPublication(getInquiryDetails),
getPrecedent(getInquiryDetails),
getMinRoleTitle(getInquiryDetails),
getLanguage,
(media, journalist ,receiveDate, responsDate, mediaOutlet, initiatedCount, numberOfPublication ,isPrecedent,role, languages) => {
    return [media,journalist,receiveDate, responsDate, mediaOutlet, initiatedCount,numberOfPublication,isPrecedent ,role, languages].filter(info => {
        return info.value.length;
    });
}

);

и получаю эту ошибку:

 error TS2554: Expected 2-9 arguments, but got 11.

как я могу использовать функцию createSelector сболее 9 параметров?Я использовал угловой 8 и использовал: {createSelector } from '@ngrx/store';

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 02 июля 2019

Насколько я понимаю, это должен быть резервный селектор, который разрешает все селекторы:

export function createSelector(
  ...input: any[]
): MemoizedSelector<any, any> | MemoizedSelectorWithProps<any, any, any> {
  return createSelectorFactory(defaultMemoize)(...input);
}

Сказано, что наличие таких больших селекторов обычно плохая практика, и вы должны разделить их на несколько меньших селекторов.

...