Как молча опросить с помощью useQuery и не вызывать повторную визуализацию - PullRequest
0 голосов
/ 11 июля 2020

Я использую 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 вызовет повторную визуализацию, но мне интересно, какой трюк использовать для достижения того же в фоновом режиме.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...