阿波罗突变未出现在道具中

Posted

技术标签:

【中文标题】阿波罗突变未出现在道具中【英文标题】:Apollo mutation not appearing in props 【发布时间】:2017-09-04 23:30:22 【问题描述】:

这是我的组件:

import React,  Component  from 'react';
import  gql, graphql, compose  from 'react-apollo';

export class Test extends Component 
  render() 
    console.log("this.props: " + JSON.stringify(this.props, null, 2));
    return null;
  


const deletePostMutation = gql`
  mutation deletePost ($_id: String) 
    deletePost (_id: $_id)
  
`;

export const TestWithMutation = graphql(deletePostMutation)(Test)

这似乎是一个非常简单的例子,但是当我运行它时,道具是空的:

props: 

【问题讨论】:

看起来不错。也许如果你返回一个空的 div 它可以工作 功能就在那里。问题是 JSON.stringify 没有显示函数????????‍♂️。至少这个问题可以作为一个例子来说明如何做到这一点???? 【参考方案1】:

您必须在架构中的突变解析函数中添加 return 语句。

例子:

resolve: function(source, args) 
  // Add the user to the data store
  exampleCollection.insert(
      category:    args.category,
      subCategory: args.subCategory,
      title:       args.title,
      description: args.description,
      salary:      args.salary,
      region:      args.region,
      created_at:  new Date()
    );

  // return some value.
  return args.title;

【讨论】:

【参考方案2】:

实际上,上面问题中的代码就是一个很好的例子。函数那里。问题是 JSON.stringify 没有显示函数??‍♂️。至少这个问题可以作为如何做的一个例子?

【讨论】:

以上是关于阿波罗突变未出现在道具中的主要内容,如果未能解决你的问题,请参考以下文章

阿波罗客户端在反应原生的初始重新加载中返回未定义

阿波罗突变“在这种环境中,分配的来源必须是一个对象”

如何在阿波罗客户端中将突变链接在一起

多重阿波罗突变

突变后反应阿波罗不更新数据

如何在没有参数的情况下进行graphql突变? (Vue 阿波罗)