如何解决如何使用readQuery和writeQuery
Apollo GraphQL团队说readQuery和writeQuery适合95%的用例。我正在使用useMutation
和update
,并且想从缓存中删除一项而不必调用refetchQueries
。我的代码如下:
const [deleteSpeaker] = useMutation(DELETE_SPEAKER,{
update(cache,{ data: {deleteSpeaker}}) {
const { speakers} = cache.readQuery({query: GET_SPEAKERS});
cache.writeQuery({
query: GET_SPEAKERS,data: { speakers: speakers.filter(speaker => speaker.id !== deleteSpeaker.id) }
});
},});
从readQuery返回的结果使我认为我应该为Speaker.datalist进行过滤,但是当我这样做时,缓存不会更新。
更新缓存以反映从GET_SPEAKERS查询中删除的记录的正确方法是什么。
export const DELETE_SPEAKER = gql`
mutation DeleteSpeaker($speakerId: Int!) {
deleteSpeaker(speakerId: $speakerId) {
id
first
last
favorite
}
}
`;
和GET_SPEAKERS
export const GET_SPEAKERS = gql`
query {
speakers {
datalist {
id
first
last
favorite
company
}
}
}
`;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。