3

有没有办法在查询响应数据保存在内部缓存中之前对其进行修改?我正在使用 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函数,它基本上做了需要做的事情,但是在错误的时间。我正在寻找可以在查询突变中用作钩子或中间件的东西。

4

1 回答 1

2

听起来您想要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);
于 2019-10-15T09:49:58.607 回答