查询在GraphiQL中工作,但在使用Reaction Apollo时在实际代码中返回空数组 [英] Query works in GraphiQL but returns empty array in Actual Code while using React Apollo
本文介绍了查询在GraphiQL中工作,但在使用Reaction 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"
}
]
}
}
}
但是在使用Reaction Apollo的查询组件时,它正确地返回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
。
并且我的产品没有任何completed
等于false
,所以它搞砸了。
再次感谢@dkulkarni我为这件事浪费了2个小时
😂这篇关于查询在GraphiQL中工作,但在使用Reaction Apollo时在实际代码中返回空数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文