Я хочу создать пользовательский хук для удаления большого количества шаблонного кода из кода многократного использования.
Моя настройка приращения включает в себя несколько комбинированных редукторов, поэтому получение значений приращения с использованием useSelector
из react-redux
влечет за собой довольно много стандартного кода.
Допустим, у меня есть admin
редуктор внутри моего rootReducer
. Я мог бы получить одно из его значений следующим образом:
const MyComponent: FC = () => {
const value = useSelector<IRootReducer, boolean>(
({ admin: { val1 } }) => val1
)
// rest of code
}
Я хочу создать пользовательский хук useAdminSelector
на основе реализации выше, чтобы его можно было использовать следующим образом:
const value = useAdminSelector<boolean>(({ val1 }) => val1)
В определении реализации я бы хотел, чтобы мой интерфейс IAdminReducer
также был реализован.
Вот моя попытка:
export function useApplicantSelector<T>((applicantState: IApplicant): T => (retVal)): T {
return useSelector<IReducer, T>((state) => (state.applicant))
}
Но это решение явно синтаксически некорректно.