当使用Apollo Client进行查询时,如果查询中缺少字段 __typename
,则可能会出现错误消息“Missing field __typename”。这是因为Apollo Client在默认情况下要求查询中包含 __typename
字段。
解决这个问题的方法是在查询中手动添加 __typename
字段。下面是几个示例:
__typename
字段:import { gql } from '@apollo/client';
const GET_USER = gql`
query GetUser {
user {
id
name
__typename // 添加 __typename 字段
}
}
`;
useQuery
钩子,并在查询选项中添加 __typename
字段:import { useQuery, gql } from '@apollo/client';
const GET_USER = gql`
query GetUser {
user {
id
name
}
}
`;
const UserComponent = () => {
const { loading, error, data } = useQuery(GET_USER, {
// 添加 __typename 字段到查询选项中
fetchPolicy: 'cache-and-network',
nextFetchPolicy: 'cache-first',
notifyOnNetworkStatusChange: true,
returnPartialData: true,
partialRefetch: true,
noFetch: false,
__typename: true
});
// 渲染组件
};
通过在查询中手动添加 __typename
字段,可以解决“Apollo Client查询‘缺少字段 __typename’”的问题。