什么是「;GraphQL调用";在“RANGE\u ADD”mutator config的“rangeBehaviors”属性中?

什么是「;GraphQL调用";在“RANGE\u ADD”mutator config的“rangeBehaviors”属性中?,graphql,relayjs,Graphql,Relayjs,范围行为为: GraphQL调用映射到在这些调用影响下向连接添加新边缘时希望中继显示的行为。行为可以是“附加”、“预结束”或“删除”之一 文档中的示例是: rangeBehaviors: { // When the ships connection is not under the influence // of any call, append the ship to the end of the connection '': 'append', // Prepend the

范围行为
为:

GraphQL调用映射到在这些调用影响下向连接添加新边缘时希望中继显示的行为。行为可以是“附加”、“预结束”或“删除”之一

文档中的示例是:

rangeBehaviors: {
  // When the ships connection is not under the influence
  // of any call, append the ship to the end of the connection
  '': 'append',
  // Prepend the ship, wherever the connection is sorted by age
  'orderby(newest)': 'prepend',
}
在另一个例子中,您有:

rangeBehaviors: {
  '': 'append',
  'status(any)': 'append',
  'status(active)': 'append',
  'status(completed)': null,
}

在这种情况下,“GraphQL调用”是什么?“受”这样一个调用的影响意味着什么?

当您查询中继中的连接字段时,您可以指定超出标准分页参数的参数,这些参数包括
第一个
最后一个
之前
,以及
之后


在上面的TodoMVC示例中,我们通过状态上的当前筛选器限定查询。您所展示的TodoMVC代码的含义是,对于过滤状态为
“active”
“any”
(或默认状态)的查询,突变应该附加新的todo,但对于过滤状态为
“completed”
(这在上下文中是有意义的,因为突变增加了一个新的、活跃的todo).

Thank taion。您的意思是突变配置实例将
rangeBehaviors
对象中的键视为连接字段中存在的参数的参数名称/参数值组合?因此,假设名为
todos
parameterized的连接字段处于启用状态
status
(除了
第一个
最后一个
等之外,
范围行为
中名为
status(any)
的键被mutator解释为“如果连接字段的
status
参数有值
any
,那么行为应该是
追加
”?这基本正确——“调用”描述所有字段arg(标准连接arg除外)的值。它必须完全匹配。如果不匹配,中继将重新获取整个连接。我们可能应该从文档中删除对“call”的引用。“call”是GraphQL原始FB内部版本中的一个概念(例如
things)。first(10).fizz(5)
;在开源版本中,这些参数变成了字段参数(例如
things(first:10,fizz:5)
)。