【问题标题】:graphql mutation dosen't return nesetd fieldsgraphql 突变不返回嵌套字段
【发布时间】:2020-02-25 02:21:06
【问题描述】:

如何在保留类型名称的同时从突变中返回嵌套字段

我在后端使用 prisma 和 graphql-yoga

async createComment(parent, args, ctx, info) {
    console.log(args);
    const comment = await ctx.db.mutation.createComment(
      {
        data: {
          ...args,
          user: {
            connect: {
              id: ctx.request.userId
            }
          },
          item: {
            connect: {
              id: args.itemId
            }
          }
        }
      },
      info
    );

    console.log(comment);

    ctx.pubsub.publish('PUBSUB_NEW_COMMENT', { newComment: comment });

    return comment;
 }

在我的情况下,突变响应剂量返回嵌套字段 user 和 item 是 null

【问题讨论】:

  • 你返回调用ctx.db.mutation.createComment的“结果”,我们需要看看这个函数。
  • 您确认user 和item 是否真的在评论中设置? connect 中传递的 id 可能未定义或不正确。
  • 我确实通过在客户端 xD 上的 gql 中添加用户和项目字段来解决这个问题,更改也会影响发送到订阅的有效负载

标签: graphql prisma


【解决方案1】:

我确实通过将item 和user 字段添加到客户端中的gql 突变来解决这个问题

const COMMENT_MUTATION = gql`
  mutation COMMENT_MUTATION($text: String, $itemId: String) {
    createComment(text: $text, itemId: $itemId) {
      id
      text
      user { // adding user field here
        id
        name
      }
      item { adding item field here
        id
        title
        user {
          id
          name
        }
      }
    }
  }
`;

我不明白这是怎么发生的,但因为它也会影响服务器上的订阅负载 基本上从 gql 突变中添加或删除字段也会改变去订阅的有效负载

【讨论】:

    猜你喜欢
    • 2019-11-25
    • 2021-06-25
    • 2019-08-24
    • 2019-07-08
    • 2020-04-24
    • 2018-08-24
    • 2021-04-09
    • 2019-07-18
    • 2017-07-28
    相关资源
    最近更新 更多