来自查询数据的apollo-link-state默认值?

时间:2018-08-29 23:16:05

标签: graphql react-apollo apollo-client apollo-link-state

注意:这是我之前关于Apollo GraphQl Storing derived data

的问题的后续问题

我正在使用apollo-link-state存储从查询数据派生的数据。在此示例中,来自数据库的查询数据包括图形上的一些(x,y)点,并且得出的数据是斜率,移动平均值,加速度等。

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

我只需要一次且仅当我query时才计算派生数据。

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

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

更新:我认为可能是他们的async example,但我需要逐步解决。

1 个答案:

答案 0 :(得分:0)

弄清楚了。不知道为什么从一开始对我来说这并不明显,但是...事后看来。

最后,您只需要定义您的解析器即可返回某些内容。解析器甚至可以进行自己的查询。

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