我正进入(状态Network Error {"type":"WriteError"}
关于我的阿波罗查询。查询在到达客户端时执行得很好。但将其写入存储时存在问题。任何想法可能会出什么问题吗?这是查询:
fragment BpmnProcessInstanceItemTask on BpmnTaskInstance {
id
dateStarted
dateFinished
task {
name
__typename
}
performer {
name
__typename
}
performerRoles
__typename
}
fragment BpmnProcessInstanceItem on BpmnProcessInstance {
id
status
process {
name
description
type
__typename
}
owner {
name
__typename
}
tasks {
...BpmnProcessInstanceItemTask
__typename
}
dateStarted
dateFinished
__typename
}
query BpmnProcessInstancesQuery($input: BpmnProcessInstancesInput!) {
bpmnProcessInstancesQuery(input: $input) {
...BpmnProcessInstanceItem
__typename
}
}
"
我自己也遇到了这个问题,并找到了解决方案here https://github.com/apollographql/react-apollo/issues/1003。发生这种情况是因为查询正在加载没有 id 的数据,这些数据无法与缓存中的现有数据合并。
采取以下示例查询:
{
viewer {
id
fullName
groups {
id
name
}
}
}
返回的数据将存储在缓存中,其中一个条目用于查看器,每组一个条目:
User:asidnajksduih6
Group:9p8h2uidbjqshd
Group:d9a78h92lnasax
如果后续查询如下所示:
{
viewer {
id
fullName
groups {
name
}
}
}
可能会发生冲突,因为不清楚缓存中应更新哪些组(结果集将不包括组 ID)。
解决方案似乎是尽可能在查询中始终使用 id。这避免了合并问题,并提高了后续不相关查询命中缓存的机会。
以上描述了原因和解决方案。此问题的可能症状包括:呈现陈旧数据,或即使结果位于缓存中也不呈现任何数据。正如所指出的here https://github.com/apollographql/apollo-client/issues/3747,这些错误悄无声息地发生,但是可以通过阿波罗镀铬扩展 https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm在“查询”选项卡中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)