【发布时间】:2016-04-28 15:44:56
【问题描述】:
假设我有一个具有 People 和 Parties 的 GraphQL 模型。
类似这样的:
Person {
name: String
parties: PartyConnection
}
Party {
place: String
dateTime: String
people: PeopleConnection
}
我可以查看Person 并查看他们要去的Parties,然后由 Relay 缓存。
我也可以做一个突变来创建一个新的派对,添加一些人。如何确保我添加到聚会中的每个人都在缓存中无效,以便当我导航到该人的页面时,我可以在我刚刚添加的聚会中看到他们。
突变的有效载荷类似于:
fragment on CreatePartyMutationPayload {
party
partyMembers - not sure what type this should be, an array of ids?
}
我需要什么getConfigs 和/或有效负载结构来告诉 Relay,partyMembers 数组中的每个人都需要让缓存中的party 字段无效?
另外,可能有一些服务器端规则,如果我邀请一个人,他们的伙伴也会被自动邀请。这意味着我没有明确的Person id 列表,这些列表将在客户端突变对象中失效,直到有效负载返回。如何确保Payload中的党内所有人都失效?
【问题讨论】:
-
这并不是问题的真正答案,但我设法通过使用 react-relay-router 并确保更改的数据始终位于不同的路由中,然后打开 forceFetch所以relay总能得到路线变化的最新数据。