Graphql 包括当前组件没有字段的中继子片段

Graphql 包括当前组件没有字段的中继子片段,graphql,relayjs,relay,Graphql,Relayjs,Relay,我有以下组成部分: 位置 const Position = React.createClass({ render() { return ( <LinkSummary linkSummary={this.props.position.linkSummary} /> ); } }); const PositionContainer = Relay.createContainer(Position, { fragments: { posit

我有以下组成部分:

位置

const Position = React.createClass({
  render() {
    return (
      <LinkSummary linkSummary={this.props.position.linkSummary} />
    );
  }
});

const PositionContainer = Relay.createContainer(Position, {
  fragments: {
    position: Relay.QL`
      fragment on Position {
        text
        linkSummary {
          ${LinkSummary.getFragment('linkSummary')}
        }
      }
    `,
  },
});
上面在
位置
抛出一个错误,它声称我不能:

未捕获错误:GraphQL验证错误``无法查询类型“Position”上的字段“linkSummary”``

如果我更改
位置上的片段
以包含
链接摘要
中的任何字段,它将起作用。即

fragment on Position {
  text
  linkSummary {
    description
    ${LinkSummary.getFragment('linkSummary')}
  }
}

是否不可能只包含子片段,而不将该字段的任何部分用于当前容器?我还应该如何指定子片段?最坏的情况是,我可以将
LinkSummary
容器更改为接受整个位置,然后将其片段包含在
PositionContainer
中,与其他字段处于相同级别,但这似乎是错误的,因为
LinkSummary
在我的模式中是它自己的类型。

在您的模式中,
Position
是否有一个字段
LinkSummary
?因为这就是接力赛想要的。是的,它需要。正如我所提到的,这个查询与一个额外的字段一起工作,因此
LinkSummary
肯定可以在
Position
上找到。是的,你是对的。这很棘手。我假设我的模式有问题,因为我很确定just child fragment查询是有效的,对吗?你能发布模式的相关部分吗?
fragment on Position {
  text
  linkSummary {
    description
    ${LinkSummary.getFragment('linkSummary')}
  }
}