等待/订阅存储中的缓存数据

时间:2018-10-24 19:48:31

标签: reactjs apollo react-apollo

我有一个主要组件,可以在页面加载<Query>时发出查询。页面上也有一个显示的标题组件(请参见下文)(在组件树中很远,因此我不想使用prop传递数据),在这里我想显示<Query>的一些结果。其他组件。

当前使用以下设置,它总是会返回No dealeership,因为在API返回数据之前会触发client.cache.readQuery请求。

在阿波罗中访问该数据的首选方式是什么。我是否应该以某种方式订阅高速缓存存储,以便在存储更新时,标题组件将获取该数据?还是应该以某种方式手动触发某些功能?

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>
          }
          .......

0 个答案:

没有答案