Node.js GraphQL:react apollo客户端覆盖数组元素

Node.js GraphQL:react apollo客户端覆盖数组元素,node.js,reactjs,graphql,react-apollo,Node.js,Reactjs,Graphql,React Apollo,我有一个返回项目数组的GraphQL查询。我可以在GraphiQL中运行查询,并获得预期的结果 我有一个react应用程序,它使用react apollo和@graphql装饰器来解析组件道具的相同查询。通过react apollo运行查询时,返回数组中的每个项都是相同的-每个项都被最后一个项“覆盖” 我可以在“开发工具网络”选项卡中看到,通过网络发送了正确的数组项,因此问题似乎与react apollo有关。什么可能导致react apollo覆盖数组元素?问题是,查询的myqgl片段没有包含

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

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


我可以在“开发工具网络”选项卡中看到,通过网络发送了正确的数组项,因此问题似乎与react apollo有关。什么可能导致react apollo覆盖数组元素?

问题是,查询的my
qgl
片段没有包含数组中项目的
id
属性

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


您可以在Apollo文档中阅读更多关于

的内容。您可以发布代码吗?发布涉及GraphQL模式、服务器、react应用程序和react-redux实现的代码并不实际。在这种情况下,虽然我不确定是否有必要,但我想问的是,是否有任何常见的错误配置原因可能导致这种情况。既然您说GraphiQL提供了预期的结果,我认为您的服务器代码没有问题。问题可能出在客户端。我记得有什么共同的原因。i、 如果
id
存在,但它是一个对象,那么您似乎也会出现这种奇怪的行为。我的查询返回了一个JSON结构,比如
[{“id”:{“value”:1}},{“id”:{“value”:2}}]
,显然这不起作用。我已经把数据放平了,现在可以用了。