有效负载返回的Apollo缓存重定向

时间:2018-07-18 22:30:55

标签: graphql apollo react-apollo apollo-client

关闭Apollo的cacheRedirect示例(https://www.apollographql.com/docs/react/advanced/caching.html#cacheRedirect

现在,我进行以下模式修改...

type Query {
   books: [BookPayload!]!
}
type BookPayload {
   books: [Book!]!
   // other stuff, e.g. bookCount: Int
}

在该示例中,Apollo可以通过以下方式检查缓存中是否有退回的书:

cacheRedirects: {
  Query: {
    books: (_, args, { getCacheKey }) =>
      args.ids.map(id =>
        getCacheKey({ __typename: 'Book', id: id }))
  }
}

但是,当被检查的类型没有直接返回时,我不确定如何重定向缓存。我已经尝试过一切回报的尝试,但都无济于事。

我们非常感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

您的问题尚不清楚。您说“我不确定在不直接返回被检查类型时如何重定向缓存”,但是您似乎正在检查并返回[BookPayload!]!

因此,我看不出为什么这行不通:

cacheRedirects: {
  Query: {
    books: (_, args, { getCacheKey }) =>
      args.ids.map(id =>
        getCacheKey({ __typename: 'BookPayload', id: id }))
  }
}