首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apollo链接数据突变

Apollo链接数据突变
EN

Stack Overflow用户
提问于 2018-08-18 05:02:22
回答 1查看 128关注 0票数 1

我正在尝试改变整个应用程序的apollo链接处理程序中的数据:我想删除所有的边/节点,以简化应用程序中的数据处理。

代码语言:javascript
复制
const consoleLink = new ApolloLink((operation, forward) => {
  return forward(operation).map((data) => {
    let data = getRidOfEdges(inData)
    return data
  })
})

当我尝试更改数据并返回修改后的数据副本时,vue组件中的apollo处理程序得到一个空的数据对象={}。我还尝试就地更改数据,但这也不起作用: vue组件获得原始未更改的data

代码语言:javascript
复制
apollo: {
  moduleQuery: {
    query: MODULE_DETAILS_QUERY,
    variables: {
      slug: 'video'
    },
    fetchPolicy: 'network-only',
    manual: true,
    result({data, loading, networkStatus}) {
        // after mutating data, I get
        // data == {}
    }

对这种行为的解释是什么?我如何实现一个Apollo链接才能改变数据?这到底有没有可能?

EN

回答 1

Stack Overflow用户

发布于 2018-08-30 03:53:53

如果客户端是一个GraphQL客户端,并且期望数据根据GraphQL定义存在,那么它将转储任何不符合该模型的数据。如果您控制服务器,只需将节点数组添加到连接的根目录中。它不一定只有pageInfo和edges。如果不这样做,您可以缝合一个,并通过扩展这些类型来做同样的事情,然后您可以处理数据。

如果生产者和消费者都遵循标准,那么就没有一种简单的方法在生产者和消费者之间进行数据操作,除非您进行缝合和转换,这会改变模式。在这种情况下,您可以有一个单独的端点,该端点具有您自己的模式定义,该模式定义将后端的模式定义转换为您正在寻找的结构。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51902829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档