我有以下组件:

Position

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')}
        }
      }
    `,
  },
});

LinkSummary

const LinkSummary = React.createClass({ ... });

const LinkSummaryContainer = Relay.createContainer(LinkSummary, {
  fragments: {
    linkSummary: Relay.QL`
      fragment on LinkSummary {
        url
      }
    `,
  },
});

上面在 Position 中引发了一个错误,它声称我不能:

未捕获错误:GraphQL验证错误无法查询字段“linkSummary”类型“位置”.

如果我将 Position 上的片段更改为包含 LinkSummary 中的任何字段,则可以正常工作 . I.E.

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

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