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

时间:2017-07-07 11:19:53

标签: node.js reactjs graphql react-apollo

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

我有一个使用react-apollo@graphql装饰器的反应应用程序来解析对组件道具的相同查询。通过react-apollo运行查询时,返回数组中的每个项目都相同 - 每个项目都被覆盖了#39;最后一项。

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

1 个答案:

答案 0 :(得分:4)

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

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

您可以在Normalization with dataIdFromObject

的Apollo文档中阅读更多内容