Graphql 类型变量应为使用Apollo的对象

Graphql 类型变量应为使用Apollo的对象,graphql,apollo,Graphql,Apollo,我在GraphQL游乐场中有一个工作查询,我正在尝试使用Apollo进行工作。我似乎无法将变量正确地传递给查询 这是我的密码: public render(){ const CONVERSATION=gql` 查询GetConversation( $conversationId:ConversationWhereUniqueInput! ) { 对话(其中:$conversationId){ 身份证件 标题 } } ` const conversationId:any=this.props.co

我在GraphQL游乐场中有一个工作查询,我正在尝试使用Apollo进行工作。我似乎无法将变量正确地传递给查询

这是我的密码:

public render(){
const CONVERSATION=gql`
查询GetConversation(
$conversationId:ConversationWhereUniqueInput!
) {
对话(其中:$conversationId){
身份证件
标题
}
}
`
const conversationId:any=this.props.conversation
console.log(conversationId)//工作正常。
返回(
{({加载,错误,数据})=>{
如果(错误){
返回${JSON.stringify(错误)}
}
如果(装载){
返回加载。。。
}
返回{JSON.stringify(data)}
}}
)
}
我收到的错误消息是:

${“graphQLErrors”:[],“networkError”:{“name”:“ServerError”,“response”:{},“statusCode”:400,“result”:{“errors”:[{“message”:“Variable\”“$conversationId\”获得无效值\“cjrtfagwc00bq0a300njz594r\”;预期类型ConversationWhereUniqueInput为对象。”,“locations”:[{“line”:1,“column”:23}}],“message:”“网络错误:响应不成功:收到状态代码400”}

[GraphQL错误]:消息:变量“$conversationId”获得无效值“cjrtfagwc00bq0a300njz594r”;类型ConversationWhereUniqueInput应为对象,位置:[对象对象],路径:未定义

我认为通过将我的变量作为
variables={{conversationId}}
传递,我实际上是按照请求传递了一个对象。我做错了什么

编辑 本杰帮我找到了问题所在


我只需将
const-conversationId:any=this.props.conversation
更改为
const-conversationId:any={this.props.conversation}
您正在传递变量:

{
  "conversationId": "cjrtfagwc00bq0a300njz594r"
}
这很好。问题是您的查询被定义为声明
conversationId
变量(您已经给出了字符串(或
ID
?)值
“cjrtfagwc00bq0a300njz594r”
)应该是
ConversationWhereUniqueInput
(这是一个输入对象):

这两种类型(
ID
ConversationWhereUniqueInput
)不兼容

考虑到变量命名,我怀疑您希望更改GraphQL查询,以便它将
conversationId
属性作为
where
参数的一部分传递:

query GetConversation(
  $conversationId: ID!
) {
  conversation(where: {conversationId: $conversationId}) {
    id
    title            
  }
}

您正在传递变量:

{
  "conversationId": "cjrtfagwc00bq0a300njz594r"
}
这很好。问题是您的查询被定义为声明
conversationId
变量(您已经给出了字符串(或
ID
?)值
“cjrtfagwc00bq0a300njz594r”
)应该是
ConversationWhereUniqueInput
(这是一个输入对象):

这两种类型(
ID
ConversationWhereUniqueInput
)不兼容

考虑到变量命名,我怀疑您希望更改GraphQL查询,以便它将
conversationId
属性作为
where
参数的一部分传递:

query GetConversation(
  $conversationId: ID!
) {
  conversation(where: {conversationId: $conversationId}) {
    id
    title            
  }
}

谢谢@Benjie,你的回答帮助我找到了问题。我没有传递正确的变量,我传递了一个字符串。我将用答案编辑我的问题。谢谢@Benjie,你的回答帮助我找到了问题。我没有传递正确的变量,我传递了一个字符串。我将用答案编辑我的问题。