Реактивный компонент, обернутый с помощью apollo-client, автоматически инициирует вызов сервера для данных.
Я хотел бы отключить запрос данных только на конкретном входе пользователя.
Вы можете передать опцию пропуска в параметрах запроса - но это означает, что функция refetch() не предоставляется в качестве опоры для компонента; и кажется, что значение пропусков динамически не оценивается при обновлении prop.
Мое использование - это компонент карты. Я хочу, чтобы данные для маркеров были загружены, когда пользователь нажимает кнопку, но не на первоначальное изменение компонентов или изменение местоположения.
Пример кода ниже:
// GraphQL wrapping
Explore = graphql(RoutesWithinQuery, {
options: ({ displayedMapRegion }) => ({
variables: {
scope: 'WITHIN',
targetRegion: mapRegionToGeoRegionInputType(displayedMapRegion)
},
skip: ({ targetResource, searchIsAllowedForMapArea }) => {
const skip = Boolean(!searchIsAllowedForMapArea || targetResource != 'ROUTE');
return skip;
},
}),
props: ({ ownProps, data: { loading, viewer, refetch }}) => ({
routes: viewer && viewer.routes ? viewer.routes : [],
refetch,
loading
})
})(Explore);