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')}
}
}