ApolloGraphQL -- ReadQuery `Field Not Found` 错误?
Posted
技术标签:
【中文标题】ApolloGraphQL -- ReadQuery `Field Not Found` 错误?【英文标题】:ApolloGraphQL -- ReadQuery `Field Not Found` Error? 【发布时间】:2018-11-19 14:49:41 【问题描述】:我的 readQuery 正在返回一个 field not found
错误,即使该字段似乎存在于缓存中。
查询
const GETIMSFROMCACHE_QUERY = gql`
query getIMsFromCache($fromID: String!)
instant_message(fromID:$fromID)
id,
fromID,
toID,
msgText
`;
缓存解析器
client.cache.cacheResolvers =
Query:
instant_message: (_, args) => toIdValue(client.dataIdFromObject(
__typename: 'instant_message',
id: args.id
)),
,
;
READQUERY CALL,更新中
let instant_message = cache.readQuery( query: GETIMSFROMCACHE_QUERY, variables: "fromID": fromID );
错误
Error: Can't find field instant_message("fromID":"ayqNLcA7c6r8vip3i") on object (ROOT_QUERY)
"getMyUserData(\"id\":\"ayqNLcA7c6r8vip3i\")": [
"type": "id",
"generated": false,
"id": "MyUserData:ayqNLcA7c6r8vip3i",
"typename": "MyUserData"
],
"getMyUserData(\"id\":\"9W95z8A7Y6i34buk7\")": [
"type": "id",
"generated": false,
"id": "MyUserData:9W95z8A7Y6i34buk7",
"typename": "MyUserData"
],
"Appts(\"originatingUserID\":\"ayqNLcA7c6r8vip3i\")": [],
"instant_message(\"fromID\":\"ayqNLcA7c6r8vip3i\",\"toID\":\"9W95z8A7Y6i34buk7\")": [
"type": "id",
"generated": false,
"id": "instant_message:126",
"typename": "instant_message"
,
"type": "id",
"generated": false,
"id": "instant_message:127",
"typename": "instant_message"
,
"type": "id",
"generated": false,
"id": "instant_message:128",
"typename": "instant_message"
]
.
查看错误消息,ROOT_QUERY 对象上似乎存在instant_message
对象,目标用户 id,但我收到此错误。
我该如何纠正这个问题?
提前感谢大家提供任何信息。
【问题讨论】:
【参考方案1】:解决了!这很棘手,因为原始查询的常规解析器会从两个用户中的任何一个返回或的任何 IM。解析器返回来自fromID
和toID
的任何instant_messages,反之亦然。
所以我认为我需要某种缓存解析器来在查询缓存时重复此操作。
最终我意识到缓存并不关心解析器中发生了什么——它会将 Instant_message 对象存储为来自fromID
和toID
,而不管解析器中发生了什么。
一旦我意识到这一点,我就放弃了特殊的缓存解析器查询,并只使用最初检索到 Instant_messages 的原始查询,并首先使用相同的查询变量,并且它起作用了。 :)
【讨论】:
以上是关于ApolloGraphQL -- ReadQuery `Field Not Found` 错误?的主要内容,如果未能解决你的问题,请参考以下文章
ApolloGraphQL -- ReadQuery `Field Not Found` 错误?
ApolloGraphQL PubSub:MaxListenersExceededWarning?
为啥 NextJS 中的 ApolloGraphQL 示例使用 getStaticProps 而不是 getServerSideProps
ApolloGraphQL 和 React:组件重新挂载时避免调用查询和订阅?
ApolloGraphQL:找不到 schema.json。请明确指定。Android Studio
ApolloGraphql FileNotFoundException: source/apollo/generatedIR/debug/src (是一个目录)