Graphql 类型变量应为使用Apollo的对象
我在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
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,你的回答帮助我找到了问题。我没有传递正确的变量,我传递了一个字符串。我将用答案编辑我的问题。