【问题标题】:GraphQL - Parameters not being passed to backend in mutationGraphQL - 参数未在突变中传递到后端
【发布时间】:2022-01-24 04:06:39
【问题描述】:

我刚开始使用 GraphQL 和突变,遇到了这个问题。

当我尝试将数据传递到我的 GraphQL 服务器时,似乎 args 参数没有注册我尝试传递的 args。

当我console.log 他们时,他们显示为undefined,但该方法正在工作并接收请求。

下面有什么不正确的地方吗?我只是在思考它,所以如果有任何反馈,我将不胜感激。

这是我尝试从 GraphiQL 运行的查询

mutation {
  addDelivery(
    carrier: "AusPost", 
    goodsDelivered:[],
    receiver: {
      first_name:"ll",
      last_name:"test",
      receiver_email: "bbb@bbb.com.au"
    },
    consignmentNumber:"AAAA000",
    poNumber:"PO0000"
  ) {
    id
    carrier {
      iD
      carrier_name
    }
  }
}

我的架构:

type ReceiverType{
    first_name: String
    last_name: String
    receiver_email: String
}

type ItemType {
    item_type: String,
    quantity: String
}

type Deliveries {
    carrier: Carrier
    consignmentNumber: String
    goodsDelivered: [String]
    id: ID
    items: [ItemType]
    poNumber: String
    receiver: ReceiverType
}

type Carrier{
    iD: ID
    carrier_name: String
}

input Item {
    item_type: String,
    quantity: String
}

type Query {
    deliveries: [Deliveries]
}

input Receiver {
    first_name: String
    last_name: String
    receiver_email: String
}

type Mutation {
    addDelivery(
        carrier: String!,
        consignmentNumber: String!,
        goodsDelivered: [Item]!,
        poNumber: String!,
        receiver: [Receiver]! 
    ) : Deliveries
}

我的添加交付解析器

addDelivery: async (parent, args, context, info) => {
    const delivery = new Deliveries({
        receiver: {
            first_name: args.first_name,
            last_name: args.last_name,
            receiver_email: args.receiver_email
        },
        items: args.items,
        consignment_no: args.consignment_no,
        po_number: args.po_number,
        carrier_id: args.carrier_id,
        delivery_id: args.delivery_id
    });

    await delivery.save();
    return delivery;
}

【问题讨论】:

    标签: express graphql apollo-client


    【解决方案1】:

    我将签名更改为以下,它解决了问题。

    addDelivery: async ({receiver, items, consignment_no, po_number, carrier_id, delivery_id}) => {
    

    【讨论】:

      猜你喜欢
      • 2017-09-22
      • 2021-11-10
      • 2021-10-15
      • 2019-11-19
      • 2021-06-30
      • 2020-05-05
      • 1970-01-01
      • 2020-08-16
      • 2019-05-12
      相关资源
      最近更新 更多