useQuery错误对象为graphQLErrors属性返回空数组
我有一个MERN应用程序,它使用react hooks和useQuery错误对象为graphQLErrors属性返回空数组,graphql,react-hooks,react-apollo,apollo-client,Graphql,React Hooks,React Apollo,Apollo Client,我有一个MERN应用程序,它使用react hooks和@apollo/react hooks执行突变和查询。该应用程序按预期工作,但现在我正在尝试处理我的应用程序的错误处理代码。我有这个疑问 export const getStacks = gql` query { stacks{ title, notecards { question, answer }, id }
@apollo/react hooks
执行突变和查询。该应用程序按预期工作,但现在我正在尝试处理我的应用程序的错误处理代码。我有这个疑问
export const getStacks = gql`
query {
stacks{
title,
notecards {
question,
answer
},
id
}
}
`;
我故意把它改成这个
export const getStacks = gql`
query {
storks{
tile,
notecards {
question,
answer
},
id
}
}
`;
当我执行此操作并尝试从
const{loading:isGetStacksLoading,错误:stacksError,数据:stacksData}=useQuery(getStacks)代码>
我在stacksError
中得到服务器错误,并且没有graphQLErrors
这意味着当我在控制台中记录stacksError时,我会在控制台中看到这一点
Error: Network error: Response not successful: Received status code 400
在我的App.js文件中,我正在使用createHttpLink
与ApolloClient
和ApolloProvider
有人知道为什么stacksError
返回服务器错误并且没有graphQLErrors
属性来显示我的查询不正确吗
附言
我已经在我的App.js中添加了apollo link error
,当调用它时,我能够解构错误对象并记录graphQLErrors
prop以及networkError
prop和我看到的控制台中的内容:
[GraphQL error]:消息:无法查询类型“RootQueryType”上的字段“storks”。您是指“堆栈”还是“堆栈”?位置:[对象],路径:未定义
及
[网络错误]:服务器错误:响应未成功:收到状态代码400
这让我更加困惑,因为它显示有as-grapQLErrors属性,但在我的组件中无法访问内容
哦!!我也在为我的应用程序使用react路由器,也许我必须像使用redux一样传递一些东西或类似“连接”我的组件?idkgraphQLErrors
仅在服务器返回200状态代码时填充,但响应包含一个errors
数组——这些errors
将作为graphQLErrors
在钩子返回的error
对象(以及其他地方,例如ErrorLink)中公开
如果在执行对服务器的请求时发生错误,则该错误将被视为networkError
。GraphQL服务器通常以400状态响应格式错误或无效的查询,这意味着这些错误将被视为networkError
,而不是graphQLErrors
,此跟踪,但是这个来自apollo文档的示例为什么显示当存在错误的查询时,errors对象仍然具有graphQLError属性。我是不是误解了这个例子?对其他人来说。上述答案在技术上是正确的。我可以通过执行本期github评论中提到的操作来访问我的错误