【发布时间】:2020-08-20 22:46:22
【问题描述】:
我有一个 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 属性会告诉我我的查询不正确?
附言
我已将 apollo-link-error 添加到我的 App.js 中,当它被调用时,我能够解构错误对象并记录 graphQLErrors 道具以及 networkError 道具和控制台中的内容分别见:
[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 一样传递一些东西或像“连接”我的组件?身份证
【问题讨论】:
标签: graphql react-hooks react-apollo apollo-client