Ожидание / подписка на кешированные данные в магазине - PullRequest
0 голосов
/ 24 октября 2018

У меня есть основной компонент, который снимает запрос при загрузке страницы <Query>.На странице также есть отображаемый компонент заголовка (см. Ниже) (далеко в дереве компонентов, поэтому я не хочу передавать данные с подпорками), где я хочу показать некоторые результаты этого <Query> из другого компонента..

В настоящее время при следующей настройке всегда будет возвращаться No dealeership, так как запрос client.cache.readQuery запускается до того, как API возвращает данные.

Какой предпочтительный способ доступа к этим данным в apollo,Должен ли я как-то подписаться на хранилище кеша, чтобы при обновлении хранилища компонент заголовка получал эти данные?Или как-то должна вручную запускать какую-то функцию?

class AnimatedHeader extends React.Component {
  render() {
    return (
      <ApolloConsumer>
        {client => {
          let dealership;

          try {
            dealership = client.cache.readQuery({
              query: dealershipQuery,
              variables: {
                id: getCurrentDealershipId(),
              }
            });
          } catch(e) {
            return <span>No dealership</span>
          }
          .......
...