gpt4 book ai didi

react-apollo - Apollo Client 3 : query returns results in Chrome's Network tab, 但在我的应用程序中未定义

转载 作者:行者123 更新时间:2023-12-04 17:25:46 25 4
gpt4 key购买 nike

我正在使用 @apollo/client 获取一些数据v3.在 Chrome 的网络选项卡(http 结果)中,我可以看到它返回数据和错误(我不担心错误,我现在知道为什么会这样。):

{
data: {workItems: [,…]},…},
errors: [{message: "Error trying to resolve position."
}
但是在我的应用程序中, data返回未定义。
这是我的客户端配置:
export const graphqlClient = new ApolloClient({
cache: new InMemoryCache(),
link: ApolloLink.from([
onError(({ graphQLErrors, networkError }) => {
if (graphQLErrors) {
graphQLErrors.forEach(error =>
console.log(
`[GraphQL error]: ${JSON.stringify(error, null, 2)}`
)
)
}
if (networkError) {
console.log(`[Network error]: ${networkError}`)
}
}),
apolloLink
])
})
我的查询:
gql`
query WorkItems($ppm: String) {
workItems(where: { ppm: $ppm }) {
...WorkItemKanban
}
}
${workItemFragment.workItemKanban}
`

const useWorkItemListDataGraphql = (args: {
query: DocumentNode
variables: { parent: string } | { ppm: string }
}) => {
const { variables, query } = args
const { data, error, loading, refetch } = useQuery<
{ workItems: WorkItem[] },
{ parent: string } | { ppm: string }
>(query, {
pollInterval: 180000,
variables
})

// data returns undefined, but error shows the same error as in Chrome's network tab
return { ...data, error, loading, refetch }
}
我不知道从哪里开始确定哪里出了问题。当没有错误时加载数据有效,但我认为这不是正常行为,它应该始终加载与我在 Chrome 选项卡中看到的相同。

最佳答案

Apollo documentation - Error policies 中所述

By default, the error policy treats any GraphQL Errors as network errors and ends the request chain


因此默认情况下, 阿波罗客户返回 undefined如果有错误。
添加 errorPolicy: 'all'在查询的选项中,或在客户端默认选项中解决了问题。
例子:
const { loading, error, data } = useQuery(MY_QUERY, { errorPolicy: 'all' });

关于react-apollo - Apollo Client 3 : query returns results in Chrome's Network tab, 但在我的应用程序中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63520907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com