拉动对象数组时出现 nuxt-apollo 问题

nuxt-apollo issues while pulling array of objects

我一直在使用 apollo-nuxt 来查询我的 graphql,但是 运行 在这样做的时候遇到了一些奇怪的问题。首先这是我的查询:

{
  getOrder(quantity: 2) {
    id
    createdAt
    content {
      amount
      productId
    }
  }
}

其中 returns 以下位于 /graphqli:

{
  "data": {
    "getOrder": [
      {
        "id": null,
        "createdAt": 1592224281,
        "content": [
          {
            "amount": 5,
            "productId": "Salad"
          },
          {
            "amount": 2,
            "productId": "Water"
          }
        ]
      },
      {
        "id": null,
        "createdAt": 1592224264,
        "content": [
          {
            "amount": 5,
            "productId": "Whine"
          },
          {
            "amount": 3,
            "productId": "Water"
          }
        ]
      }
    ]
  }
}

这符合预期。现在在 apollo(nuxt 代码)中使用相同的查询:

<script>
import gql from 'graphql-tag'
export default {
  apollo: {
    orders: gql` query order {
    orders: getOrder(quantity: 2) {
    id
    createdAt
    content {
      amount
      productId
    }
  }
 }`
  },
...

会产生这个结果:

我无法解释为什么同一个查询会产生两个不同的结果。一个在数组中有两个不同的对象,而阿波罗在一个数组中有两次相同的对象。添加更多(通过增加数量)时,我只会在数组中获得更多相同的对象。我在这里错过了什么?

两个订单的 id 是相同的值 (null),所以 Apollo 最终使用两个订单 (Order:null) 和 orders 的缓存键字段最终引用同一个键两次。您需要修复后端,以便 id 正确解析为每个订单的唯一值。