&引用;否则";使用GraphQL 如何使用GQL指令实现“else”效果

&引用;否则";使用GraphQL 如何使用GQL指令实现“else”效果,graphql,apollo,relay,Graphql,Apollo,Relay,使用@include(if:$withFriends) 但是如果$withFriends为false,我想获取其他内容。我可以通过传递附加变量$notWithFriends query Hero($episode: Episode, $withFriends: Boolean!) { hero(episode: $episode) { name friends @include(if: $withFriends) { name } } } query

使用
@include(if:$withFriends)

但是如果
$withFriends
为false,我想获取其他内容。我可以通过传递附加变量
$notWithFriends

query Hero($episode: Episode, $withFriends: Boolean!) {
  hero(episode: $episode) {
    name
    friends @include(if: $withFriends) {
      name
    }
  }
}
query Hero($episode: Episode, $withFriends: Boolean!) {
  hero(episode: $episode) {
    name
    friends @include(if: $withFriends) {
      name
    }
    appearsIn @include(if: $notWithFriends)
  }
}
问题:是否可以避免使用附加变量?
类似这样的内容:
@include(else:$withFriends)
@include(ifNot:$withFriends)
@include(if:!$withFriends)
您可以使用
@skip
指令,它的工作原理与
@include
相反——如果
if
参数为
true
,它将从选择集中忽略该字段:

query Hero($episode: Episode, $withFriends: Boolean!) {
  hero(episode: $episode) {
    name
    friends @include(if: $withFriends) {
      name
    }
    appearsIn @skip(if: $withFriends)
  }
}
这样,如果
$withFriends
true
,则只会选择
name
friends
。如果为
false
,则只会选择
name
appearsIn