useQuery 错误对象 returns graphQLErrors 的空数组 属性
useQuery error object returns empty array for graphQLErrors property
我有一个 MERN 应用程序,它使用反应钩子和 @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
}
}
`;
当我这样做并尝试从
访问stacksError
时
const { loading: isGetStacksLoading, error: stacksError, data: stacksData } = useQuery(getStacks);
我在 stacksError
中收到服务器错误并且没有 graphQLErrors
意思是当我控制台日志时stacksError
我在控制台中看到这个
Error: Network error: Response not successful: Received status code 400
在我的 App.js 文件中,我将 createHttpLink
与 ApolloClient
和 ApolloProvider
一起使用
有谁知道为什么 stacksError
返回服务器错误并且没有 graphQLErrors
属性 告诉我我的查询不正确?
P.S.
我已将 apollo-link-error
添加到我的 App.js 中,当它被调用时,我能够解构错误对象并记录 graphQLErrors
道具中的内容以及 networkError
prop 和我在控制台看到的分别是:
[GraphQL error]: Message: Cannot query field "storks" on type "RootQueryType". Did you mean "stacks" or "stack"?, Location: [object Object], Path: undefined
和
[Network Error]: ServerError: Response not successful: Received status code 400
这让我更加困惑,因为它显示存在 grapQLErrors 属性 但我的组件中无法访问内容
哦!我也在为我的应用程序使用 react-router,也许我必须像使用 redux 一样传递某些东西或 "connect" 我的组件? idk
graphQLErrors
仅在服务器 returns 一个 200 状态代码但响应包含一个 errors
数组时才会被填充——那些 errors
然后被公开为 graphQLErrors
在钩子返回的 error
对象中(以及其他地方,例如 ErrorLink)。
如果在执行对服务器的请求时发生错误,错误将被视为 networkError
。 GraphQL 服务器通常会以 400 状态响应格式错误或无效的查询——这意味着这些错误将被视为 networkError
而不是 graphQLErrors
.
我有一个 MERN 应用程序,它使用反应钩子和 @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
}
}
`;
当我这样做并尝试从
访问stacksError
时
const { loading: isGetStacksLoading, error: stacksError, data: stacksData } = useQuery(getStacks);
我在 stacksError
中收到服务器错误并且没有 graphQLErrors
意思是当我控制台日志时stacksError
我在控制台中看到这个
Error: Network error: Response not successful: Received status code 400
在我的 App.js 文件中,我将 createHttpLink
与 ApolloClient
和 ApolloProvider
有谁知道为什么 stacksError
返回服务器错误并且没有 graphQLErrors
属性 告诉我我的查询不正确?
P.S.
我已将 apollo-link-error
添加到我的 App.js 中,当它被调用时,我能够解构错误对象并记录 graphQLErrors
道具中的内容以及 networkError
prop 和我在控制台看到的分别是:
[GraphQL error]: Message: Cannot query field "storks" on type "RootQueryType". Did you mean "stacks" or "stack"?, Location: [object Object], Path: undefined
和
[Network Error]: ServerError: Response not successful: Received status code 400
这让我更加困惑,因为它显示存在 grapQLErrors 属性 但我的组件中无法访问内容
哦!我也在为我的应用程序使用 react-router,也许我必须像使用 redux 一样传递某些东西或 "connect" 我的组件? idk
graphQLErrors
仅在服务器 returns 一个 200 状态代码但响应包含一个 errors
数组时才会被填充——那些 errors
然后被公开为 graphQLErrors
在钩子返回的 error
对象中(以及其他地方,例如 ErrorLink)。
如果在执行对服务器的请求时发生错误,错误将被视为 networkError
。 GraphQL 服务器通常会以 400 状态响应格式错误或无效的查询——这意味着这些错误将被视为 networkError
而不是 graphQLErrors
.