任何人都拥有修改响应数据的固件的经验吗?
const parseResponse = new ApolloLink((operation, forward) => {
return forward(operation).map((response) => {
response.data.parsed = transformData(response.data)
return response
})
})
const link = parseResponse.concat(networkLink)
这在websockets事件上效果很好-将数据转换后,添加到数据parsed
中的此response.data
字段中,但是在常规<Query...
请求中,已解析的字段将被删除,因此组件无法读取它。我已经确认在查询请求中正确调用了此方法,并且也添加了parsed
字段,但是在固件和组件之间的某个地方parsed
字段被剥离了
[Apollo Client v3引入了customizing the behavior of cached fields的功能:
您可以自定义Apollo客户端缓存中各个字段的读取和写入方式。为此,您可以为给定字段定义
FieldPolicy
对象。您可以将FieldPolicy
对象嵌套在与包含该字段的类型对应的任何TypePolicy
object中。
这里是将日期字符串解析为Date对象的方法:
TypePolicy