1

注意:这是我之前关于Apollo GraphQl 存储派生数据的问题的后续问题

apollo-link-state用来存储从查询数据派生的数据。在此示例中,来自 db 的查询数据包括图形上的一些 (x,y) 点,派生数据是斜率、移动平均线、加速度等。

我的 React 绘图组件需要原始数据和派生数据的不同组合。有些只需要原件。

我只需要计算一次派生数据,并且只在我query为它计算时。

Apollo 网站上的示例似乎暗示需要首先触发突变,但这对我来说似乎是错误的,因为使用此派生数据的每个组件都需要首先触发突变以确保它已初始化。我不想在需要数据的任何地方进行查询和突变。

所以我的问题是:我可以/应该使用query解析器apollo-link-state还是有更好的思考方式?

更新:我认为他们的异步示例可能是我需要的,但我需要完成它。

4

1 回答 1

1

弄清楚了。不知道为什么这对我来说并不明显,但是……事后诸葛亮。

最后,你只需要定义你的解析器来返回一些东西。解析器甚至可以进行自己的查询。

export const getProjectDerived = (_obj, { ProjectId }, { cache }, info) => {

  const projQueryRes = cache.readQuery({
    query: projQuery,
    variables: {
      ProjectId
    }
  })
  const newObj = { ...something here... }

  return newObj


}

然后只需将其包含在解析器的“查询”部分中。

import { getProjectDerived } from './project'

const resolvers = {
  Query: {
    ProjectDerived: getProjectDerived
  }
}
export default resolvers
于 2018-09-07T17:04:53.327 回答