当 fetchPolicy 不是 'no-cache' 时,Apollo 客户端仅返回 { __typename: 'Typehere' }

gbg*_*gbg 2 apollo react-apollo apollo-client

我有一个查询返回下面的示例数据

{ 
  __typename: 'Typehere',
  name: 'type',
  address: 'address type'
}
Run Code Online (Sandbox Code Playgroud)

当我使用useQueryfetchPolicy: 'cache-first' 选项时,GQL API 返回正确的数据。但是当我使用 console.log(response) 时,数据现在将转换为

{ 
  __typename: 'Typehere'
}
Run Code Online (Sandbox Code Playgroud)

fetchPolicy 的 API 调用和响应:“缓存优先” 在此输入图像描述

控制台.log(响应) 在此输入图像描述

为什么会发生这种情况?

我尝试使用 fetchPolicy: 'no-cache' 获取数据并且没有问题,但是,我需要缓存它以进行优化。我还尝试了阿波罗客户端文档中所述的其他获取策略。

gbg*_*gbg 6

使用解决了它possibleTypes

const cache = new InMemoryCache({
  typePolicies: {....}
  possibleTypes: {
    Typehere: ['Type1', 'Type2']
  }
});
Run Code Online (Sandbox Code Playgroud)

事实证明,apollo 客户端需要知道可能的实现Typehere