GraphQL:react-apollo 客户端覆盖数组元素

dun*_*all 2 node.js reactjs graphql react-apollo

我有一个 GraphQL 查询,它返回一个项目数组。我可以在GraphiQL 中运行查询并获得我预期的结果。

我有一个反应的应用程序,用途react-apollo@graphql装饰来解决同样的查询组件的道具。当通过 运行查询时react-apollo,返回数组中的每一项都是相同的——每一项都被最后一项“覆盖”。

我可以在 dev-tools network 选项卡中看到正确的数组项是通过网络发送的,所以这个问题似乎与 react-apollo 有关。什么可能导致 react-apollo 覆盖数组元素?

dun*_*all 5

问题是我qgl的查询片段不包括id数组中项目的属性。

如果您有类似的问题,请确保您的架构在每个项目上都包含一个id_id属性;每个id值都是唯一的,并且您id在查询中请求该属性。或者,您可以dataIdFromObject在客户端中提供一个函数来动态生成值的 ID。

您可以在 Apollo 文档中阅读有关 dataIdFromObject 规范化的更多信息