Problemet med å føre data til graphql fra reagere

stemmer
0

Jeg har brukernavn og passord som jeg vil sende til graphql backend fra reagerer på frontend. Jeg bruker apollo klient for at

på min klient siden jeg har dette

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

Og jeg kaller det sånn

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

På serveren min

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)
            }
        },
    }
})

Problemet er - jeg har bestått passord og brukernavn separatly som strenger, men min console.log(username, password, 123)i mutasjoner gir tilbake undefinedog full objekt med brukernavn, passord felt.

Jeg er ikke sikker på hvor jeg gjør noe galt. All hjelp vil være mye verdsatt.

Publisert på 14/02/2020 klokken 00:02
kilden bruker
På andre språk...                            


1 svar

stemmer
1

Den resolvefunksjonen har source, args, contextog infosom parametere. Du kan lese mer om det i resolver funksjon signatur .

Så i utgangspunktet du ber om source, og args, det er derfor man er undefinedog den andre er gjenstand for argumenter. Den måten å få variabler i omformeren er:

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
            }
        },
    }
})

Håper det hjelper.

Svarte 17/02/2020 kl. 10:43
kilden bruker

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