2016-07-10 5 views
2

Zum Beispiel habe ich Verbindungstyp:Zusätzliche Argumente zu „connectionArgs“ Relay js

let usersType = new GraphQLObjectType({ 
    name: 'Users', 
    description: 'users array', 
    fields:() => ({ 
     array: { 
      type: userConnection, 
      description: 'all users', 
      args: connectionArgs, 
      searchFor: { 
       type: GraphQLString 
      }, 
      resolve: (root, args) => { 
       return connectionFromArray(get(), args); 
      } 
     } 
    }) 
}); 

in diesem Fall in Abfrage kann ich nur angeben (ersten, letzten, nach, bevor) Argumente, aber was, wenn ich brauche um einige zusätzliche Argumente wie userName usw. zu übergeben, ist das möglich?

im Grunde brauche ich so etwas wie:

query { 
    array (first: 1, userName: "name") 
} 

und in den Benutzer eingeben kann ich umgehen Anfrage wie:

resolve: (root, args) => connectionFromArray(get(args.userName), args.args) 

Antwort

4

Ja, es ist möglich, man muss nur die Helfer Relais verlängern connectionArgs mit dem neuen Argument wie folgt:

args: { 
    ...connectionArgs, 
    searchFor: { type: GraphQLString } 
} 

Und dann auf es in der 0 zugreifenFunktion:

resolve: (root, args) => { 
    // if the field argument 'searchFor' exists 
    if (args.searchFor) { 
    ... 
    } 
    ... 
} 
Verwandte Themen