维-阿波罗使用具有外键的查询更新缓存

问题描述

我有以下问题。 当我使用 deleteProgram 时,我使用 Query: All_Programs 更新缓存,它提供了我拥有的所有程序。这非常有效。

deleteProgram(id) {
      this.$apollo.mutate({
        mutation: DELETE_PROGRAM,variables: {
          id: id
        },update: store => {
          const data = store.readQuery({
            query: ALL_PROGRAMS
          });
          data.allPrograms = data.allPrograms.filter(i => {
            return i.id !== id;
          });
          store.writeQuery({ query: ALL_PROGRAMS,data });
        }
      });
    }
  },

现在我想对 deleteActivity 做同样的事情。在那里我必须加载查询 ACTIVITIES_BY_PROGRAM_ID,它为我提供具有相同程序 ID 的所有活动。我也可以删除他的活动,但缓存不会更新。当我删除它时,我需要点击 F5。

deleteActivity(id) {
      this.$apollo.mutate({
        mutation: DELETE_ACTIVITY,update: store => {
          const data = store.readQuery({
            query: ACTTIVITES_BY_PROGRAM_ID,variables: {
              id: this.$store.getters.programId
            }
          });
          data.activitiesByProgramId = data.activitiesByProgramId.filter(i => {
            return i.id !== id;
          });
          store.writeQuery({ query: ACTTIVITES_BY_PROGRAM_ID,data });
        }
      });
    }

我希望任何人都可以帮助我。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...