@reduxjs/toolkit — createSelector с параметрамиJavascript

Форум по Javascript
Ответить
Anonymous
 @reduxjs/toolkit — createSelector с параметрами

Сообщение Anonymous »

У меня есть приложение ReactJS с Redux и пара createSelector, но некоторые из них я бы хотел изменить.
Вот примеры текущих селекторов:

Код: Выделить всё

export const getAppData = createSelector(
(state: RootState): AppDataState => state[`appData-${getUniquishModuleId()}`],
(appData: AppDataState): AppDataState => appData,
);

Код: Выделить всё

export const getNextPageToRender = createSelector(
[
(state: RootState): PageSlug[] =>
state[`appData-${getUniquishModuleId()}`].pagesToRender,
(_: RootState, currentPageSlug: PageSlug): PageSlug => currentPageSlug,
],
(pagesToRender: PageSlug[], currentPageSlug: PageSlug): PageSlug => {
const currentPageIndex: number = pagesToRender.findIndex(
(page: PageSlug) => page === currentPageSlug
);
return pagesToRender[currentPageIndex + 1];
},
);
Теперь я хотел бы, чтобы getNextPageToRender также использовал селектор getAppData.
У меня есть попробовал:

Код: Выделить всё

export const getNextPageToRender = createSelector(
getAppData,
[
(appData: AppDataState): PageSlug[] =>
getContextRelatedAppData(appData).pagesToRender,
(_: AppDataState, currentPageSlug: PageSlug): PageSlug => currentPageSlug,
],
(pagesToRender: PageSlug[], currentPageSlug: PageSlug): PageSlug => {
const currentPageIndex: number = pagesToRender.findIndex(
(page: PageSlug) => page === currentPageSlug
);
return pagesToRender[currentPageIndex + 1];
},
);
И я тоже пробовал:

Код: Выделить всё

export const getNextPageToRender = createSelector(
[
getAppData,
(appData: AppDataState): PageSlug[] =>
getContextRelatedAppData(appData).pagesToRender,
(_: AppDataState, currentPageSlug: PageSlug): PageSlug => currentPageSlug,
],
(pagesToRender: PageSlug[], currentPageSlug: PageSlug): PageSlug => {
const currentPageIndex: number = pagesToRender.findIndex(
(page: PageSlug) => page === currentPageSlug
);
return pagesToRender[currentPageIndex + 1];
},
);
Но этот синтаксис, похоже, не работает.
Может кто-нибудь помочь? Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/793 ... parameters
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»