注:这是我之前关于https://stackoverflow.com/questions/52011566/apollo-graphql-storing-derived-data/52028445#52028445的问题的后续问题。
我使用apollo-link-state存储从查询数据派生的数据。在这个例子中,来自db的查询数据包括图上的一些(x,y)点,导出的数据是斜率、移动平均、加速等。
我的反应图形组件需要原始数据和派生数据的不同组合。有些人只需要原版。
我只需要对派生数据进行一次计算,并且只有当我对其进行query时才能计算。
阿波罗遗址上的示例似乎意味着需要首先触发一个突变,但这在我看来是错误的,因为每个使用这些派生数据的组件都需要首先触发一个突变,以确保它已经初始化。我不想在任何需要数据的地方进行查询和变异。
因此,我的问题是:我是否可以/应该在apollo-link-state中使用apollo-link-state解析器,或者是否有更好的方法来考虑这一点?
更新:我认为他们的异步示例可能是我所需要的,但我需要解决它。
发布于 2018-09-07 17:04:53
弄明白了。我不知道为什么这对我来说并不明显,但是.事后发现。
最后,您只需要定义您的解析器来返回某些内容。解析器甚至可以进行自己的查询。
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 resolvershttps://stackoverflow.com/questions/52087275
复制相似问题