javascript - 查询在 GraphiQL 中工作,但在使用 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
.
而且我的产品没有任何completed
平等,false
所以它搞砸了。
再次感谢@dkulkarni 我为这件事浪费了 2 个小时
推荐阅读
- properties - 如何在数据类中覆盖 __getattribute__ 和 __setattr__
- java - 只有在运行应用程序后第一次执行spring data jpa repository相关代码时才会很慢
- python - 如何清理地址以便 Nominatim 可以正确定位它们?
- reactjs - 当我将道具传递给它时组件停止工作
- python - 如何在 Pandas DataFrame 列中展开连字符分隔的数字范围?
- c# - 用于从 BlockingCollection 消费的计时器 vs 线程 vs RegisteredWaitHandle
- amazon-s3 - 一个云端托管站点可以处理多少负载?
- sql - SQLite 查询:多选联合
- android - 返回同一活动时无法显示键盘 - PinEntryEditText
- docker - 使用 mssql 在 docker 上启动 keycloak 时出现异常