我正在使用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()不是函数
为什么这种行为?
任何提示都会很棒,
谢谢
答案 0 :(得分:1)
要获取数据,必须在变量对象中重新输入数据标题。就我而言:
this.props.mutate({
variables:{
data: {
{...}
}
}