【问题标题】:What's the use of getCollisionKey() in relayjs?在 relayjs 中 getCollisionKey() 有什么用?
【发布时间】:2017-09-29 05:15:42
【问题描述】:

我是接力新手,在寻宝教程的 getCollisionKey 上看到了这个:

getCollisionKey() {
    return `check_${this.props.game.id}`;
  }

在它声明的文档中 - 实现此方法以返回冲突密钥。 Relay 会将任何具有相同冲突键的突变按顺序依次发送到服务器。

请帮助我了解什么是 getCollisionKey。真的很感激。

【问题讨论】:

    标签: relayjs


    【解决方案1】:

    collisionKey 是一个标识符,用于帮助了解何时需要一个接一个地执行突变或何时可以并行化。

    我们之所以需要这个主要是因为网络不一致

    以突变LikeOrUnlikePost 为例。这种突变喜欢或不喜欢帖子取决于您是否已经喜欢它。

    假设您喜欢该帖子,然后在您决定不喜欢后 1 秒。
    但是第一个突变失败了,所以它没有发送到你的服务器,所以只发送了一个 LikeOrUnlikePost 突变。

    结果是你认为你不喜欢这个帖子(你点击了两次),但实际上你只喜欢它(只有一个突变成功)。

    这就是collisionKey 的用途。它告诉 Relay 将任何具有相同冲突键的突变排队。

    在上面的例子中,第二个突变会被排队,并且永远不会因为第一个突变失败而被执行。

    【讨论】:

      猜你喜欢
      • 2016-01-13
      • 2017-06-13
      • 2016-01-08
      • 2020-01-21
      • 2017-01-25
      • 2016-04-07
      • 2016-12-17
      • 2017-05-31
      • 2016-06-25
      相关资源
      最近更新 更多