首页 > 解决方案 > 我们可以将 GraphQL 查询的结果设置为有条件地返回布尔值或自定义对象类型吗?

问题描述

我正在尝试编写一个检查记录是否存在的 graphql 查询。这里的目标行为是如果记录存在则返回,如果不存在则返回 false。(如果记录不存在,我故意避免它返回错误)。我试过这样的事情:

union VerifyExistenceResult = Boolean | TheRecordType

verifyRecordExists(recordUrl: String!): VerifyExistenceResult!

但工会似乎不支持使用标量。这里有更好的方法吗?

标签: graphqlapollo-server

解决方案


假设您有以下 gql 查询。

const GET_RECORD=gql`
 query ($skipRecord:Boolean!){
 recordUrl
}
 `

然后,您必须声明一个名为 localSkipRecord 的局部变量。

现在,当您实际使用查询时,例如使用 hook ,您必须传递以下内容:

{data,loading,error}=useMutation(GET_RECORD,{
 variables:{skipRecord:localSkipRecord}
})

推荐阅读