Здравствуйте, я пытаюсь создать useSelectors
хук, который должен быть в основном таким же, как useSelector
, но он должен получать и возражать, и возвращать объект. Пока что я правильно набрал все ключи, но значения не передаются должным образом.
вот мой код:
// useSelector.ts
const useSelectors = < U extends {} > (
selectors: {
[K in keyof U]: (state: Redux) => TypedUseSelectorHook < Redux > | null
},
): { [K in keyof U]: TypedUseSelectorHook<Redux> | null } => {
return reduce(
selectors,
(acc, selector, key) => {
return { ...acc,
[key]: useSelector(selector)
};
}, {},
);
};
// Component.tsx
const Component = () => {
const {
loading,
hierarchy,
error
} = useSelectors({
loading: selectHierarchyLoading,
hierarchy: selectHierarchyData,
error: selectHierarchyError,
})
return ...;
}
IDE знает, как типы, так как мне кричит, что я не могу назначить эти типы в TypedUseSelectorHook
, но я не знаю, как передать их, любая идея? :)