React Apollo Client-在缓存之前修改查询数据

时间:2019-10-15 09:37:31

标签: reactjs react-hooks react-apollo apollo-client react-apollo-hooks

是否有一种方法可以在将查询响应数据保存到内部缓存之前对其进行修改? 我正在使用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 个答案:

答案 0 :(得分: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);