Graphql无法在突变时创建属性“clientMutationId”错误?

时间:2017-09-19 10:23:10

标签: graphql relayjs graphql-js

这是我想要执行的突变:

const GraphQLAddPlayerResponseMutation = mutationWithClientMutationId({
      name: 'AddPlayerResponse',
      inputFields: {
        cdx: { type: new GraphQLNonNull(GraphQLInt) },
      },
      mutateAndGetPayload: ({cdx}) => {
        var cdxAdded = addplayerResponse(cdx);
        console.log("cdxAdded = ",cdxAdded)
        return cdxAdded;
      }, // what u return on mutateAndGetPayload is available on outputFields
      outputFields: {
        playerResponse: {
          type: GraphQLInt,
          resolve: ({cdxAdded}) => {
            console.log("outputFields cdxAdded = ",cdxAdded)
            return cdxAdded
          },
        },
        viewer: {
          type: GraphQLUser,
          resolve: () => getViewer(),
        },
      },
    });

无法弄清楚代码有什么问题,它会登录mutateAndPayload:

 mutateAndGetPayload: ({cdx}) => {
            var cdxAdded = addplayerResponse(cdx);
            console.log("cdxAdded = ",cdxAdded)
            return cdxAdded;
          },

但是我认为outputFields没有被评估,因为它没有登录控制台而且我收到了这个错误:

{
  "data": {
    "addPlayerResponse": null
  },
  "errors": [
    {
      "message": "Cannot create property 'clientMutationId' on number '3'",
      "locations": [
        {
          "line": 4,
          "column": 3
        }
      ],
      "path": [
        "addPlayerResponse"
      ]
    }
  ]
}

帮助?

1 个答案:

答案 0 :(得分:0)

return cdxAdded;替换为return { cdxAdded };(疯狂猜测)