Допустим, у меня есть селектор, который получает реквизиты:
export const selectTaskById = createSelector(
selectCoreState,
(state, props: { id: TaskKey }) => state?.tasks[props.id] || null
);
Затем у меня есть другой селектор, который не получает реквизиты, но он должен использовать мир данных из указанного выше селектора, предоставив его жестко запрограммированный идентификатор:
export const selectGeneralTask = createSelector(
selectTaskById, // -- Here I want to pass hardcoded props with {id: 'generalTask'}
(state) => state
);
Я искал через SO и inte rnet и не нашел решения, как я могу этого достичь.
В нижней строке я хотел бы найти Кстати, как я могу сделать своего рода «абстракцию» на селекторах, не имея необходимости знать «id» в каждом месте, где мне нужна информация для конкретной c задачи.
UPDATE На данный момент единственное решение, которое я нашел, выглядит следующим образом: Я добавил еще один селектор:
export const selectRootState = (state: AppState) => state;
Затем использовал его в selectGeneralTask
:
export const selectGeneralTask = createSelector(
selectRootState,
(state) => selectTaskById(state, {id: 'generalTask'})
);
Если у кого-то есть альтернативный способ решения, я был бы очень рад услышать его.