如何解决Apollo:订阅和乐观响应未更新
我很难从突变中得到乐观的反应。
我有一个订阅查询和一个变异查询。订阅被调用并成功填充数据。一段时间后,突变被称为。我看到突变更新处理程序被调用了两次。一次用于乐观版本,一次用于实际服务器响应。然而,令人讨厌的是,在第一次意外的更新调用后,乐观响应并没有更新我的 UI(React 组件)。第二次就成功了。
我使用了 apollo chrome 插件,我可以立即在缓存选项卡中看到带有新的乐观响应的对象更新。这让我认为这是广播更改而不是更新缓存的问题。
当我使用常规查询执行此操作时,缓存也会立即更新,这些更改会反映在 UI 中,这再次确认乐观响应正在工作。
因此我推断这是订阅未获取广播的乐观数据的问题。
我在这里遗漏了什么?
调用用户事件:
const { data } = await upsertArticlesMutation({
optimisticResponse: {
insert_articles: {
returning: [
{
...existingArticle,blocks: [],},],update: (cache,{ data }) => {
cache.writeFragment({
id: `articles:${id}`,fragment: ARTICLE_FRAGMENT,data: { ...existingArticle,position: newPosition },})
},variables: {
objects: {
...existingArticle,position: newPosition,})
先调用:
const { data } = useGetProjectOneSubscriptionSubscription({
variables: {
slug: projectSlug,})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。