首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用阿波罗查询传递阿波罗客户端缓存数据

使用阿波罗查询传递阿波罗客户端缓存数据
EN

Stack Overflow用户
提问于 2018-10-19 08:37:27
回答 1查看 381关注 0票数 0

我有两个问题:

代码语言:javascript
复制
const GET_FILTERS = gql`
  query getFilters {
    filters @client {
      id
      title
      selected
    }
  }
`

代码语言:javascript
复制
const GET_POSTS = gql`
  query getPosts {
    posts {
      id
      author
      status
    }
  }
`

第一个是使用apollo-link-state从本地状态获取数据,第二个是外部调用。

我有一个临时设置,用于获取这样的帖子:

代码语言:javascript
复制
const withPosts = (Component) => (props) => (
  <Query
    query={GET_POSTS}  
  >
    {({loading, data, error})} => {
      if(loading) return null
      if(error) return null
      return <Component {...data} {...props}/>
    }}
  </Query>
)

获取帖子是很好的,但是我想要做的是在每次调用GET_FILTERS查询时添加从GET_POSTS查询返回的内容?

我可以做的一件事是将withPost封装到另一个,比如withFilters HOC,并将结果作为变量传递给GET_POSTS查询,但我一直在想,是否还有其他方法可以通过某种上下文访问数据,例如只使用withPost HOC的cache.readQuery

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-19 21:53:01

阿波罗有用于自组织模式的“原生”工具,您可以作曲许多(命名的)查询和突变来增强组件。IMHO --它比使用query/mutaions组件更具可读性和威力。

您可以通过data.fetchMore将查询(过滤器)值作为变量传递--当然,您可以使用查询组件来进行“内部查询”。

直接使用缓存并不是必需的,而查询‘缓存-第一’fetchPolicy选项可以使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52888708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档