我试图在另一个组件发生突变并在后端更改数据源之后更新组件的relayjs缓存。
用户安装C1,它对D1有数据依赖性。 用户导航到C2,其对D2具有数据依赖性。 用户改变D2数据。 用户再次安装C1。
D1片段受D2突变影响:D2-> D-> D1C1具有该片段的缓存版本,而在componentMount上,它不会请求新数据,因为该数据已经在中继缓存中。
如何使用新的Mutated(D1)进行C1渲染。 如何使C1的中继缓存无效。
C1和C2位于不同的Pages / React-Router路径上。
答案 0 :(得分:0)
突变中的getFatQuery
方法告诉中继因突变可能会发生什么变化。与getConfigs
和您的本地图数据一起,它将构建一个变异查询,以获取您需要的数据(无需过度/不足)。
根据您的图表结构,这看起来可能有所不同,但这里有一个例子来说明。让我们假设d2是todo项目,d1是待办事项列表。
class UpdateTodoMutation extends Relay.Mutation {
getFatQuery() {
return Relay.QL`
fragment on updateTodoPayload {
todo {
title,
dueDate,
completed,
}
viewer {
todos,
},
}
`;
}
}
要详细了解接力突变,请查看此博客文章 - http://blog.pathgather.com/blog/a-beginners-guide-to-relay-mutations和接力documentation。