如何更新具有分离数据源的2个反应组件的relayjs缓存

时间:2016-09-06 17:30:21

标签: reactjs graphql relayjs

我试图在另一个组件发生突变并在后端更改数据源之后更新组件的relayjs缓存。

用户安装C1,它对D1有数据依赖性。 用户导航到C2,其对D2具有数据依赖性。 用户改变D2数据。 用户再次安装C1。

D1片段受D2突变影响:D2-> D-> D1

C1具有该片段的缓存版本,而在componentMount上,它不会请求新数据,因为该数据已经在中继缓存中。

如何使用新的Mutated(D1)进行C1渲染。 如何使C1的中继缓存无效。

C1和C2位于不同的Pages / React-Router路径上。

1 个答案:

答案 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