首页 > 解决方案 > Apollo 客户端从缓存中驱逐但从不重新渲染

问题描述

我正在使用 Apollo 的客户端并试图address从缓存中驱逐对象。Usingevict确实将它从缓存中删除(由 Apollo Client Dev Tools 确认),但是,看起来该组件没有address重新呈现,除非我刷新页面,否则它仍然存在。

              deleteAddress({
                variables: { id: data.address.id },
                update: (cache) => {
                  cache.evict({
                    id: "Address:" + data.address.id,
                  });
                  cache.gc();
                },
              })
            }

具体来说,我尝试了以下两种方法,都从缓存中删除了对象,但都没有重新渲染。

                  cache.evict({
                    id: "Address:" + data.address.id,
                  });
                  cache.gc();
                 cache.evict({
                    id: cache.identify(data?.address),
                  });

标签: cachingapolloapollo-clientreact-apollo

解决方案


推荐阅读