如何解决Apollo readQuery,从缓存中获取数据
我正在尝试从 Apollo 缓存中获取数据。我知道数据在那里是因为在 Apollo 开发工具中指定的记录可用。
在我的反应应用程序中,我进行了简单的单击并设置了稍后传递给查询的 Id。 client.readQuery(...)
的结果是 null
。我在旋转,因为不知道为什么。我使用的代码与文档中的完全相同。
export const RECRUIT_QUERY = gql`
query Recruit($id: ID!) {
Recruit(_id: $id) {
_id
firstName
}
}
`;
组件中 apollo 钩子的使用:
const client = useApolloClient();
const recruit = client.readQuery({
query: RECRUIT_QUERY,variables: { id: selectedId }
})
apollo 的配置:
export const client = new ApolloClient({
link: concat(
authMiddleware,new HttpLink({
uri: process.env.REACT_APP_API_URL,}),),cache: new InMemoryCache(),});
解决方法
使用 readFragment
满足了我的期望。以前我尝试过这个解决方案但错误地,例如:
client.readFragment({
id: '4587d3c2-b3e7-4ade-8736-709dc69ad31b',fragment: RECRUIT_FRAGMENT,});
事实上,Appollo 商店找不到这条记录。正确的解决方案如下所示:
client.readFragment({
id: 'Recruit:4587d3c2-b3e7-4ade-8736-709dc69ad31b',})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。