使用Apollo本地状态存储返回数据的其他表示形式是否合适

时间:2019-03-15 16:59:01

标签: javascript apollo apollo-client

我有一个Apollo客户端,用于从服务请求数据。我想使用获得的数据来创建节点和链接网络,例如

// Response data:
{
  "Team": [
    {
      "name": "Example Team",
      "members": [
        { "name": "Bob" },
        { "name": "Alice" }
      ]
    }
  ]
}

// Network data:
{
  "nodes": [
    { "name": "Example Team" }
    { "name": "Bob" },
    { "name": "Alice" }
  ],
  "links": [
    { "source": "Example Team", "target": "Bob" },
    { "source": "Example Team", "target": "Alice" }
  ]
}

从历史上看,在使用GraphQL之前,我会使用Redux将状态不佳的API响应存储在状态中并从中读取。

从Apollo提取GraphQL结果并立即以另一种形式将其保存回Apollo 本地状态,这样可以由该格式的组件查询吗?

我预见的主要问题是,我认为我必须查询以检查我想要的数据是否以本地状态存在,然后再进行查询(如果没有)。在Redux世界中,该请求将被包装在我的商店中,然后仅在没有所需数据的情况下才向API发出请求,从而“感觉”得更加干净。

1 个答案:

答案 0 :(得分:0)

就我而言,可以使用Afterware in Apollo Clientsee this answer for more information来解决。

这将使我可以将返回的数据整理成所需的形式,并在响应中将其与原始数据一起返回。