我正在尝试更新某个项目的缓存,但更改没有反映到 ui 上,我有一个项目正在被一个有很多变量的查询获取,我无法访问它们我正在更新该项目的组件并且该项目也是分页列表的一部分,所以我的代码是
update = (cache)=>{
cache.data.data['ItemType_'+itemId].title = "New title"
}
直接更新缓存不会导致重新渲染 afaik。我建议在更新缓存后使用
fetchPolicy: "cache-only"
运行查询。这将更新组件的数据并在不访问网络的情况下重新渲染。
尝试并确保您从突变中返回正确的数据。
从突变中返回正确的字段。必填字段可以是
id
。如果它没有从变异中返回,那么就不会刷新或重新渲染。
cache.modify
发布对缓存的更改。
cache.modify“触发刷新依赖于修改字段的所有活动查询(除非您通过传递广播来覆盖此行为:false)”
您确实需要使用使用缓存的fetchPolicy。