Apollo-client _mutation输入类型-提供的数据为空

时间:2018-08-16 01:34:45

标签: javascript reactjs graphql react-apollo apollo-client

我正在使用Apollo客户端。我正在尝试对客户端进行更改。我想知道为什么我进行突变时在服务器上传递的数据无效?

这是我的突变类型:

type: recipeType,
        args:{ 
            data: {
                name: 'data',
                type: recipeInputType
            }
        }, 
        resolve(parent, args) {
            const recipe = new recipeModel(args.data); 
            const newRecipe = recipe.save();
            if(!newRecipe){ 
                throw new Error("Error adding recipe")
            }
            console.log("recipe add with success!! ", args)
            return newRecipe
        }

这是我的突变请求:

const addRecipe = gql`
    mutation addRecipe($data: RecipeInput){ 
        addRecipe(data: $data){ 
          id
          title 
        }
    }
`;

我的反应阿波罗活页夹:

export default graphql(addRecipe)(Create); 

我的组件中的突变调用:

onSubmit = (e) =>{ 
    e.preventDefault();
    this.props.mutate({ 
      variables:{  

        title: this.state.title,
        ingredients: this.state.ingredients,          
    }
    })
  }

console.loging以表格形式提供的数据时,我的服务器返回:

{}

我不知道为什么。
我试图进行以下突变调用:

this.props.addRecipe() 

但是我的控制台返回:

  

this.props.addRecipe()不是函数

为什么这种行为?
任何提示都会很棒,

谢谢

1 个答案:

答案 0 :(得分:1)

要获取数据,必须在变量对象中重新输入数据标题。就我而言:

this.props.mutate({ 
      variables:{
          data: {
            {...}
        }
    }