Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t转换/规范化/修改GraphQL查询的响应-Apollo客户端_Javascript_Graphql_Apollo_Apollo Client - Fatal编程技术网

Javascript Can';t转换/规范化/修改GraphQL查询的响应-Apollo客户端

Javascript Can';t转换/规范化/修改GraphQL查询的响应-Apollo客户端,javascript,graphql,apollo,apollo-client,Javascript,Graphql,Apollo,Apollo Client,有人有过修改响应数据的售后服务经验吗 const parseResponse = new ApolloLink((operation, forward) => { return forward(operation).map((response) => { response.data.parsed = transformData(response.data) return response }) }) const link = par

有人有过修改响应数据的售后服务经验吗

  const parseResponse = new ApolloLink((operation, forward) => {
    return forward(operation).map((response) => {
      response.data.parsed = transformData(response.data)
      return response
    })
  })
  const link = parseResponse.concat(networkLink)

这在WebSocket事件上非常有效-数据被转换,添加到数据
响应中的
解析的
字段中。数据
,但在常规的
Apollo客户端v3上引入了以下功能:

您可以自定义如何读取和写入Apollo客户端缓存中的各个字段。为此,需要为给定字段定义一个
FieldPolicy
对象。将
FieldPolicy
对象嵌套在与包含该字段的类型对应的任何对象中

以下是如何将日期字符串解析为日期对象:

export const apolloClient=新apolloClient({
链接:。。。,
缓存:新的InMemoryCache({
类型策略:{
职位:{
字段:{
更新日期:{
读取(时间:字符串){
返回新的日期(时间);
},
},
},
},
},
}),
});

查询实际上就像一个redux选择器,只获取它们要查询的字段。这意味着您的查询实际上在缓存上运行。当查询结果进入时,它被集成到缓存中,然后从那里进入组件。我想这就是失去球场的地方。你在这里做的事情看起来会在某个时候给你带来麻烦。考虑不同地解决这个问题,例如在组件中解析。在组件中总是解析意味着不必要的样板。使用RESTAPI,我只是创建了一个规范化消息的中间件。理想情况下,Apollo客户端应该提供一种中间件机制,我可以在其中转换缓存和客户端之间的响应:/