Apollo React GraphQL VariableTypeMismatch错误

时间:2018-07-19 13:14:13

标签: reactjs graphql apollo

我有一个看起来像这样的突变:

mutation ADD_CATEGORY($id: ID!, $category: ID!) {
  addCategory(id: $id, category: $category)
}

它作为addCategory传递到我的React组件中。

我的handleSave函数如下所示:

    handleSave = () => {
      const { id, category } = this.state;
      addCategory({ variables: { id, category: category.id } });
    }

idcategory.idthis.state对象的字符串属性。

我收到以下错误:

  

[GraphQL错误]:消息:类型的验证错误   VariableTypeMismatch:变量类型不匹配,位置:[对象   对象],路径:空

从GraphiQL看API,我看到updateCategory突变具有以下参数:

id: ID!
category: [ID!]!

我在这里想念什么?

2 个答案:

答案 0 :(得分:0)

模式中ID周围的括号表示category参数的类型实际上是ID的列表(或数组),而不是单个ID。所以您的通话应该看起来像这样:

addCategory({ variables: { id, category: [category.id] } })

答案 1 :(得分:0)

请确保addCategory模式接受ID和类别的字符串类型。从您的API输出看起来类别是数组类型。