React Apollo Client - 在查询数据进入缓存之前修改它
Posted
技术标签:
【中文标题】React Apollo Client - 在查询数据进入缓存之前修改它【英文标题】:React Apollo Client - modify query data before it goes to cache 【发布时间】:2020-02-11 22:54:15 【问题描述】:有没有办法在查询响应数据保存到内部缓存之前对其进行修改? 我正在使用 apollo 钩子,但这个问题与任何使用 apollo 客户端(HOC 和组件)的前端方法有关。
const data, updateQuery = useQuery(QUERY,
onBeforeDataGoesToCache: originalResponseData =>
// modify data before it is cached? Can I have something like this?
return modifiedData;
);
显然onBeforeDataGoesToCache
不存在,但这正是我正在寻找的行为。结果中有一个updateQuery
函数,它基本上做了需要的事情,但是在错误的时间。我正在寻找可以在查询突变中用作钩子或中间件的东西。
【问题讨论】:
【参考方案1】:听起来你想要Afterware,它很像允许在发出请求之前进行操作的中间件,允许你在响应中操作数据,例如
const modifyDataLink = new ApolloLink((operation, forward) =>
return forward(operation).map(response =>
// Modify response.data...
return response;
);
);
// use with apollo-client
const link = modifyDataLink.concat(httpLink);
【讨论】:
是的!这正是我一直在寻找的。没想到会在apollo-link-http
。谢谢!以上是关于React Apollo Client - 在查询数据进入缓存之前修改它的主要内容,如果未能解决你的问题,请参考以下文章
你如何动态控制 react apollo-client 查询启动?
使用 Apollo Client 为 React 组件动态设置 GraphQL 查询
React Native Apollo Client 不会获取所有数据