Apollo Client 3:查询在Chrome的“网络”标签中返回结果,但在我的应用中未定义

问题描述

我正在使用@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,refetch }
}

我不确定从哪里开始找出问题所在。在没有错误的情况下,可以正常加载数据,但是我认为这不是正常现象,应始终按我在Chrome标签页中看到的方式加载数据。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)