React Apollo Client - 在进入缓存之前修改查询数据
React Apollo Client - modify query data before it goes to cache
有没有办法在保存到内部缓存之前修改查询响应数据?
我正在使用 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
函数,它基本上可以执行所需的操作,但时间不对。我正在寻找可以在查询突变中用作挂钩或中间件的东西。
听起来你想要 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 挂钩,但这个问题与使用 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
函数,它基本上可以执行所需的操作,但时间不对。我正在寻找可以在查询突变中用作挂钩或中间件的东西。
听起来你想要 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);