Problème avec le passage des données à graphql de réagir

voix
0

Je nom d'utilisateur et mot de passe que je veux envoyer à backend graphql de réagir sur frontend. J'utilise apollo client pour que

J'ai sur mon côté client cette

const REGISTER_USER = gql`
  mutation RegisterUser($username: String!, $password: String!) {
    registerUser(username: $username, password: $password) {
      username,
      password
    }
  }
`;

Et je vous appelle comme ça

registerUser({ variables: { username: values.username, password: values.password } })

Sur mon serveur

const UserType = new GraphQLObjectType({
    name: 'user',
    fields: () => ({
        username: { type: GraphQLString },
        password: { type: GraphQLString }
    })
});
const Mutations = new GraphQLObjectType({
    name: 'Mutation',
    fields: {
        registerUser: {
            type: UserType,
            args: {
                username: { type: GraphQLString },
                password: { type: GraphQLString }
            },
            resolve(username, password) {
                console.log(username, password, 123)
            }
        },
    }
})

Le problème est - je passe le mot de passe et nom d' utilisateur séparemment sous forme de chaînes, mais mon console.log(username, password, 123)des mutations rend undefinedet objet plein avec nom d' utilisateur, les champs de mot de passe.

Je ne sais pas où je fais quelque chose de mal. Toute l'aide sera très appréciée.

Créé 13/02/2020 à 22:02
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

La resolvefonction a source, args, contextet infocomme params. Vous pouvez en lire davantage dans la signature de la fonction de résolution .

Donc , fondamentalement , vous demandez sourceet args, c'est la raison pour laquelle on est undefinedet l'autre est l'objet d'arguments. La façon d'obtenir vos variables dans votre résolveur est:

const Mutations = new GraphQLObjectType({
    name: 'Mutation',
    fields: {
        registerUser: {
            type: UserType,
            args: {
                username: { type: GraphQLString },
                password: { type: GraphQLString }
            },
            resolve: (source, args) {
                console.log(args.username, args.password)
                // HERE: you can access your arguments input as part of the 'args' object
            }
        },
    }
})

J'espère que cela aide.

Créé 17/02/2020 à 08:43
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more