![](/img/trans.png)
[英]asyncData with apollo query returns an object but not an array
[英]Query works in GraphiQL but returns empty array in Actual Code while using React Apollo
我有一個像這樣的簡單查詢
import gql from "graphql-tag";
export const GET_TODOS_BY_PRODUCT = gql`
query getTodosByProduct(
$id: ID!
$completed: Boolean = false
$limit: Int = 100
) {
product(id: $id) {
hashtag
todos(completed: $completed, limit: $limit) {
body
}
}
}
`;
在GraphiQL中,它返回的結果如下:
{
"data": {
"product": {
"todos": [
{
"body": "Remove Custom Font from Tweet #a2k",
"product": {
"id": "1439"
},
"__typename": "Todo"
},
{
"body": "Make Site a PWA #a2k",
"product": {
"id": "1439"
},
"__typename": "Todo"
}
]
}
}
}
但是,在使用React Apollo的Query組件時,它會正確返回hashtag
,但以空數組[]形式返回todos
,而且我似乎無法弄清楚查詢出了什么問題。
如果我從todos
之外的查詢中獲取其他參數,則它將正確返回它們,但只有todos
返回空數組[]
。
我要求它像-
<Query
query={GET_TODOS_BY_PRODUCT}
variables={{ id: state.get("selectedProduct.id") }}
>
{({ data: { product } }) => {
return <Main todos={product.todos} hashtag={product.hashtag} />;
}}
</Query>
而且我似乎無法弄清楚為什么出了什么問題? 有什么建議么?
感謝@dkulkarni,我找到了解決方案。 在我的GraphiQL中, completed
為true
;在Apollo中,我沒有進行設置,因此它為false
。
而且我的產品沒有任何等於false
completed
,因此很混亂。
再次感謝@dkulkarni我為此事浪費了2個小時hours
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.