从apollo缓存添加/删除项目,更改缓存数据顺序

时间:2017-07-24 14:18:30

标签: reactjs graphql apollo react-apollo

我想知道最好的(如果可能的话)方法是做什么的:

例如,让我们想象一个包含两个列表的页面:所有系列和喜爱的系列。我通过此查询从服务器获得按照评级排序的那些列表:

query {
  series {
    id
    name
    rating
  }
  user {
    id
    name
    favoriteSeries {
      id
      name
      rating
    }
  }
}

现在,当用户将“所有系列”列表中的某个系列标记为收藏时,应将其从“所有”列表中删除,并添加到按其评级排序的“收藏”列表中。因此,当用户单击按钮时,突变发生,我必须使用变异的“更新”字段来处理缓存中的更改。我知道我应该使用readQuerywriteQueryreadFragmentwriteFragment,但我无法确定哪个更适合此任务。

一方面,我可以使用readQuery。在这种情况下,我可以轻松地从一个数组中删除一个系列并将其放入另一个数组中,但如果我在这里有分页并且查询道具发生变化怎么办?我应该使用什么查询来从缓存中获取所有数据?

另一方面,我可以使用readFragment来获取我想通过其ID移动的确切系列。在这种情况下,我不知道如何将其关系更改为“所有”和“最喜欢”列表。此外,我不明白如何在两种情况下管理缓存顺序。

0 个答案:

没有答案