注意:这是我之前关于Apollo GraphQl存储派生数据的问题的后续问题
我正在使用apollo-link-state
来存储从查询数据派生的数据。在此示例中,来自数据库的查询数据包括图形上的一些 (x,y( 点,派生的数据是斜率、移动平均线、加速度等。
我的 React 图形组件需要原始数据和派生数据的不同组合。有些只需要原件。
我只需要计算一次派生数据,并且仅在我query
时
计算。阿波罗网站上的例子似乎意味着需要首先触发突变,但这对我来说似乎是错误的,因为使用此派生数据的每个组件都需要首先触发突变以确保它被初始化。我不想在我需要数据的任何地方进行查询和更改。
所以我的问题是:我可以/应该在apollo-link-state
中使用query
解析器,还是有更好的方法来思考这个问题?
更新:我认为他们的异步示例可能是我需要的,但我需要完成它。
想通了。不知道为什么这对我来说并不明显,但是......事后。
最后,您只需要定义解析器即可返回一些内容。解析器甚至可以进行自己的查询。
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