在定义Relay容器的片段时,我们可以有条件地包含或跳过字段。 For example,仅当comments
变量为showComments
时,以下代码才会包含true
。
Relay.createContainer(Story, {
initialVariables: {
numCommentsToShow: 10,
showComments: false,
},
fragments: {
story: (variables) => Relay.QL`
fragment on Story {
comments(first: $numCommentsToShow) @include(if: $showComments) {
edges {
node {
author { name },
id,
text,
},
},
},
}
`,
}
});
我们如何有条件地在mutation's fat query中添加字段?
use-use:我们可以重复使用相同的变异来更新任何字段,而不是使用单独的muttaions来更新某个类型的每个字段,而只获取响应中的那个字段。这样做可以减少有效负载。
此问题的动机是另一个问题Reusing a Mutation in Relay。
答案 0 :(得分:0)
你可以在FatQuery上实际使用字符串插值:
getFatQuery() {
return Relay.QL`
fragment on EditCommentPayload {
comment {
${this.props.fields.join(',')}
}
}
`;
似乎有点反GraphQL,但遗憾的是胖查询没有变量(related issue)。