Ich erhalte folgenden Fehler. wenn Sie versuchen, eine Mutation über graphiql auszuführen. Bitte helfen Sie mir, dieses Problem zu lösen oder zeigen Sie auf einen Link, wo ich zum Beispiel react relay-Mutationen finden kann.Kann die Eigenschaft 'clientMutationId' nicht definiert werden
mutation {
createUser(input: {username: "Hamza Khan", clientMutationId: ""}) {
user {
id
username
}
}
}
{
"data": {
"createUser": null
},
"errors": [
{
"message": "Cannot set property 'clientMutationId' of undefined",
"locations": [
{
"line": 17,
"column": 2
}
]
}
]
}
ist die Mutation Definition
import {
GraphQLString,
GraphQLInt,
GraphQLFloat,
GraphQLList,
GraphQLObjectType,
GraphQLID,
GraphQLNonNull
} from 'graphql';
import {
connectionArgs,
connectionDefinitions,
connectionFromArray,
fromGlobalId,
globalIdField,
mutationWithClientMutationId,
nodeDefinitions,
} from 'graphql-relay';
import {User} from './usermodel';
import {UserType} from './usertype';
export const UserMutations = {};
UserMutations.createUser = mutationWithClientMutationId({
name: 'CreateUser',
inputFields: {
username: {type: new GraphQLNonNull(GraphQLString)}
},
outputFields: {
user: {
type: UserType,
resolve: (payload) => {
return User.getUserById(payload.userId);
}
}
},
mutateAndGetPayload: (args) => {
let newUser = new User({ username: args.username });
newUser.save().then((user) => {
return {userId: user.id};
}).error((err) => {return null;});
}
});
Der Fehler ist fast sicher, weil Sie einen Benutzer nicht korrekt laden. Wahrscheinlich, weil Sie nur einen Benutzernamen als Eingabe senden. –
Ich kann neue Benutzer in muateAndGetPayload trösten, aber seltsam lösen Funktion in outputFields wird nicht ausgeführt. – user1762608
es könnte sein, dass Sie nicht für Benutzer abfragen. Wenn Sie kein Feld anfordern, wird die Auflösungsfunktion des Ausgabefelds nicht aufgerufen. –