GraphQL:react-apollo 客户端覆盖数组元素
GraphQL: react-apollo client overwrites array elements
我有一个 GraphQL 查询 returns 一个项目数组。我可以 运行 GraphiQL 中的查询并得到我预期的结果。
我有一个反应应用程序,它使用 react-apollo
和 @graphql
装饰器来解析对组件道具的相同查询。当 运行 通过 react-apollo
查询时,返回数组中的每一项都是相同的 - 每一项都已 'overwritten' 最后一项。
我可以在开发工具网络选项卡中看到通过网络发送了正确的数组项,因此问题似乎与 react-apollo 有关。什么可能导致 react-apollo 覆盖数组元素?
问题是我的 qgl
查询片段不包含数组中项目的 id
属性。
如果您有类似的问题,请确保您的架构在每个项目上都包含 id
或 _id
属性;每个 id
值都是唯一的,并且您在查询中请求 id
属性。或者,您可以在客户端中提供 dataIdFromObject
函数来动态生成值的 ID。
的 Apollo 文档中阅读更多内容
我有一个 GraphQL 查询 returns 一个项目数组。我可以 运行 GraphiQL 中的查询并得到我预期的结果。
我有一个反应应用程序,它使用 react-apollo
和 @graphql
装饰器来解析对组件道具的相同查询。当 运行 通过 react-apollo
查询时,返回数组中的每一项都是相同的 - 每一项都已 'overwritten' 最后一项。
我可以在开发工具网络选项卡中看到通过网络发送了正确的数组项,因此问题似乎与 react-apollo 有关。什么可能导致 react-apollo 覆盖数组元素?
问题是我的 qgl
查询片段不包含数组中项目的 id
属性。
如果您有类似的问题,请确保您的架构在每个项目上都包含 id
或 _id
属性;每个 id
值都是唯一的,并且您在查询中请求 id
属性。或者,您可以在客户端中提供 dataIdFromObject
函数来动态生成值的 ID。