React native 中继优化更新程序中的迭代存储

React native 中继优化更新程序中的迭代存储,react-native,relayjs,relay,React Native,Relayjs,Relay,提前道歉,我是新来接力的,不确定这里所有的术语都是正确的 我有一个(简化的)图表,看起来像: customer { summary(id: "ABC123") { records { // This is an array of Record tag } } } Customer、Summary和Record都是具有全局ID的对象-它们在中继开发工具检查器中显示为记录 我有一个按名称删除标记的变体(从图中的其他位置-未显示),我需要从中更新customer

提前道歉,我是新来接力的,不确定这里所有的术语都是正确的

我有一个(简化的)图表,看起来像:

customer {
  summary(id: "ABC123") {
    records { // This is an array of Record
      tag
    }
  }
}
Customer
Summary
Record
都是具有全局ID的对象-它们在中继开发工具检查器中显示为记录

我有一个按名称删除标记的变体(从图中的其他位置-未显示),我需要从中更新customer summary对象以删除带有关联标记的记录。我尝试了两种方法,但都没有取得很大进展:

  • 作为变异的一部分,重新请求客户摘要。问题是我不知道那一点的ID是什么。(也许我可以通过一些方式来理解,但那会很混乱。)也不能真正解决问题,因为我希望乐观地这样做

  • 在乐观更新程序中,删除任何匹配的标记记录。这看起来应该是可行的,但似乎没有足够丰富的API使我能够做到这一点

  • 第一种方法,我似乎无法通过根目录访问摘要记录:

    const customer = store.getRoot().getLinkedRecord('customer') // works!
    customer.getLinkedRecord("summary") // undefined
    customer.getLinkedRecord("summary", {id: "ABC123"}) // undefined
    
    第二种方法是,如果我可以向存储区请求“类型的所有记录”或“所有记录”,我可以迭代并找到需要编辑的记录,但这似乎不是一个公开的方法(即使Relay DevTools一定在以某种方式这样做)