首页 > 解决方案 > 通过 __ref id 查找 apollo 缓存项

问题描述

我试图通过它包含的 __ref 的 id 来定位 apollo 缓存项。我的缓存片段如下:

WorkItem:b6b09053-75d2-4b16-a1e2-06c652892203:
id: "b6b09053-75d2-4b16-a1e2-06c652892203"
name: "accept_objective"
subject: {__ref: "Objective:7fdd9233-fb6d-487f-b6e6-0d2879168800"}
__typename: "WorkItem"

我只有在应用程序的此页面上可用的目标 ID。如何找到并丢弃带有我拥有的目标 ID 的 subject.__ref 的 workItem?我目前正在尝试以下方法,但它不起作用。

cache.modify({
          id: cache.identify({
            __typename: 'User',
            id: id
          }),
          fields: {
            workItems(existing: Reference[], { readField }): Reference[] {
              //@ts-ignore
              const workItemId = existing.map(workItem => workItem.subject.id == objectiveId)
              //@ts-ignore
              return existing.filter((e: Reference) => readField('id', e !== workItemId));
            }
          }
        });

我在直接操作缓存方面很新,任何帮助将不胜感激!

标签: reactjsapolloapollo-client

解决方案


推荐阅读