在react-apollo 2.0.1中,我有一个如下所示的graphql类型:
type PagedThing {
data: [Thing]
total: Int
}
在执行以下writeFragment时
client.writeFragment({
id,
fragment: gql`
fragment my_thing on Thing {
status
}
`,
data: {
status
}
})
缓存未更新,新数据未显示在UI上。还有什么需要做的吗?
PS:为了安全起见,我使用了fragment matching
编辑1:
我收到错误:
无法匹配片段,因为缺少__typename属性:{“status”:“online”}
所以我将代码更改为:
client.writeFragment({
id,
fragment: gql`
fragment my_thing on Thing {
status
}
`,
data: {
__typename: 'Thing',
status
}
})
并且不会抛出任何错误,但更新仍然不会发生
结果我不仅需要添加__typename作为默认解析所需的ID(Explained here)
所以我需要做以下工作才能使它工作:
client.writeFragment({
id: `Thing:${id}`,
fragment: gql`
fragment my_thing on Thing {
status
}
`,
data: {
__typename: 'Thing',
status
}
})