如何在Apollo Client中将查询修改为fetchMore?

时间:2018-12-28 12:38:52

标签: reactjs apollo-client

我正在使用react和Apollo Client显示一个表。假设我的查询是这样的:

query {
  field1
  field2
  field3
}

我的表格有一个下拉菜单,可让您切换要查看的列。我正在尝试使用fetchMore函数来获取新结果。 fetchMore有一个query选项,可让您重新定义正在使用的查询。我已经弄清楚了如何使用正则表达式修改查询,所以查询看起来像这样

// field2 is now hidden
query {
  field1
  field3
}

但是由于我删除了字段并且不只是更改发送给查询的变量,所以在得到结果后,Apollo Client无法重新呈现页面(通过更新react状态),并向我显示此警告:

Missing field fieldname1 in response
// in writeToStore.ts:194

据我了解,Apollo Client无法更新其缓存,因为实际查询已被修改。不幸的是,我找不到一种方法来更新此单个查询结果的缓存。

我的依赖项是:

"apollo-boost": "^0.1.19",
"apollo-cache-inmemory": "^1.3.12",
"react": "^16.0.0",

0 个答案:

没有答案