我有以下组件:
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
在我的模式中是它自己的类型 .