GraphQL:react-apollo客户端覆盖数组元素
我有一个返回一个项目数组的GraphQL查询。 我可以在GraphiQL中运行查询并获得我期望的结果。
我有一个反应的应用程序,使用react-apollo
和@graphql
装饰器来解决相同的查询组件道具。 当通过react-apollo
运行查询时,返回数组中的每个项目都是相同的 – 每个项目都被最后一个项目“覆盖”。
我可以在开发工具networking选项卡中看到正确的数组项目是通过networking发送的,所以这个问题似乎与react-apollo有关。 什么可能导致反应apollo覆盖数组元素?
问题是我查询的qgl
片段没有包含数组中项目的id
属性。
如果您有类似的问题,请确保您的架构在每个项目上包含一个id
或_id
属性; 每个id
值是唯一的,并且您正在请求查询中的id
属性。 或者,您可以在您的客户端中提供dataIdFromObject
函数来dynamic生成值的ID。
您可以在Apollo文档中阅读更多关于使用dataIdFromObject进行规范化的内容
- 如何用GraphQL和ApolloStack解决union / interface字段
- 如何将请求正文传递到GraphQL上下文?
- Graphql的date字段types必须是输出types,但得到:未定义
- 如何从GraphQL的列表中获取1条logging
- 要求本地模块与node_modules模块之间的差异
- 在GraphQL服务器中实现访问控制的好模式是什么?
- 将复杂的parameter passing给GraphQL突变
- 如何启用节点上的csrfexpression式为graphql和graphiql与例如lusca?
- 不能从apollo-client导入createBatchingNetworkInterface