繁体   English   中英

Apollo GraphQL 突变:变量未由操作定义

[英]Apollo GraphQL mutation: Variable is not defined by operation

我能够让 graphql 在客户端和服务器 graphql 操场上正常工作。 但是,当我尝试在客户端文件中调用突变时,我最终得到Error: Response not successful: Received status code 400并且在网络选项卡中,我被告知Variable \"$ParkingSpaces\" is not defined by operation \"saveParkingLot\" 假设突变接受一组对象。

typeDefs 是:

type ParkingSpace {
   id: Int!
   ownerID: String!
   parkingID: String!
  }

input ParkingSpaces {
   id: String!
   ownerID: String!
   parkingID: String!
  }

type Mutation {
    saveParkingLot(parkingLot: [ParkingSpaces]): [ParkingSpace]!
}

解析器正在从数据库中删除现有信息,然后保存新信息

saveParkingLot: async (_, args) => {
      ParkingSpace.collection.drop();
      const parkingArray = new ParkingSpace({
        parkingLot: args.parkingLot,
      });
      parkingArray.save();
      return args.parkingLot;
    },
  },

但是代码在客户端上失败了。 我在variables:中省略了{} :因为它由于某种原因会产生语法错误

  const SAVE_PARKING_LOT = gql`
    mutation saveParkingLot($parkingLot: ParkingSpaces!) {
      saveParkingLot(parkingLot: $ParkingSpaces) {
        id
        ownerID
        parkingID
      }
    }
  `;

  const [saveParkingLot] = useMutation(SAVE_PARKING_LOT, {
    onError(err) {
      console.log(err);
    },
  });
  //Mutation fails when called
  const saveParkingLotButton = () => {
       saveParkingLot({
      variables: [
        { id: "0", ownerID: "0", parkingID: "0" },
        { id: "1", ownerID: "1", parkingID: "1" },
        { id: "2", ownerID: "2", parkingID: "2" },
        { id: "3", ownerID: "3", parkingID: "3" },
      ],
    }); 

  };

我在哪里 go 错了?

将您的客户端查询更改为:

    mutation saveParkingLot($parkingLot: [ParkingSpaces]) {
      saveParkingLot(parkingLot: $parkingLot) {
        id
        ownerID
        parkingID
      }
    }

并在变量部分使用如下:

    variables: {
       parkingLot: [
        { id: "0", ownerID: "0", parkingID: "0" },
        { id: "1", ownerID: "1", parkingID: "1" },
        { id: "2", ownerID: "2", parkingID: "2" },
        { id: "3", ownerID: "3", parkingID: "3" },
      ]
    },

参考: https://graphql.org/learn/queries/#variables

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM