拉动对象数组时出现 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
正确解析为每个订单的唯一值。
我一直在使用 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
正确解析为每个订单的唯一值。