Я использую React Apollo в собственном приложении React. Один из экранов этого приложения использует данные списка элементов, получаемых с сервера. Фрагмент кода:
function App() {
const client = useApolloClient();
const {startPolling, stopPolling} = useQuery(getItems, {
fetchPolicy: 'cache-and-network',
});
return <Router initialRouteName={home} />;
}
const AppContainer = compose(withApollo)(App);
const WithProvider = () => (
<ApolloProvider client={client}>
<Rehydrated>
<AppContainer />
</Rehydrated>
</ApolloProvider>
);
export default WithProvider;
Поскольку AppContainer всегда подключен, я хотел бы прикрепить ловушку useQuery для опроса сервера каждые несколько минут. Однако в настоящее время он работает независимо от экрана, на котором находится пользователь, когда он разрешает, он повторно отображает (сбрасывает) все приложение и переводит пользователя на первый экран (домашний) в приведенном выше коде.
Есть ли какой способ опрашивать вещи молча? Я знаю, что по дизайну useQuery вызовет повторную визуализацию, но мне интересно, какой трюк использовать для достижения того же в фоновом режиме.
Спасибо!