Я пытаюсь передать повторное получение из useQuery()
в контекст, чтобы я мог вызвать повторное получение из контекста. Мне не удалось определить правильный тип, поэтому я либо столкнулся с проблемой несоответствия типов, либо IDE не жалуется, но приложение ломается из-за несоответствия типов. Когда происходит сбой браузера, он сообщает, что refetch()
- это не функция.
Я просто хотел бы передать refetch в Context и иметь возможность вызывать его. Любая помощь приветствуется.
Ошибка ввода IDE
Вот соответствующий код:
Интерфейс для контекста реквизитов:
interface ConfirmationModalContextInterface {
...
setRefetch: (refetch: (variables?: Record<string, any>) => Promise<ApolloQueryResult<any>>) => void;
}
Интерфейс для модального подтверждения контекста:
interface ConfirmationModalProps {
...
refetch: (variables?: Record<string, any>) => Promise<ApolloQueryResult<any>> | undefined;
}
Оригинальный refetch
экземпляр:
const {loading, error, data, refetch} = useQuery(queries.USER_POSTS);
Настройка реквизитов для контекста:
const confirmModalContext = useContext(ConfirmationModalContext);
const {..., setRefetch} = confirmModalContext;
setRefetch(refetch);