2015-12-10 10 views
6

Io uso firstafter e lastbefore per eseguire l'impaginazione. hasNextPage e hasPreviousPage sono molto utili.Come passare il conteggio totale al client in pageInfo

Ma quello di cui ho bisogno è anche il total count in modo da poter calcolare e mostrare cose come page 5 of 343 pages sul client.

Sfortunatamente quello non fa parte di pageInfo anche se ho le informazioni sul sito del server.

Potete per favore includere un campo total nel pageInfo ed estendere connectionFromArray a prendere nel totale arrayLength come connectionFromArraySlice già fa?

Grazie

risposta

11

pageInfo è stato progettato per rappresentare informazioni sulla pagina specifica, mentre il numero totale di elementi è in realtà una proprietà della connessione stessa. Si consiglia di aggiungere un campo count alla connessione. Si potrebbe interrogare con:

fragment on TodoList { 
    tasks(first: 10) { 
    count # <-- total number of tasks 
    edges { ... } 
    pageInfo { ... } 
} 

Relay supporta campi arbitrari su una connessione, quindi siete liberi di chiamare questo count, totalCount, ecc

8

Grazie @ Joe Savona

Lui è assolutamente giusto. Dal momento che ci ho messo un attimo a capire come aggiungere in realtà la proprietà per la connessione sul server del sito ho pensato condivido che anche qui:

var {connectionType: postsConnection} = connectionDefinitions({ 
    name: 'post', 
    nodeType: qlPost, 
    connectionFields:() => ({ 
    totalCount: { 
     type: GraphQLInt, 
     resolve: (connection) => connection.totalCount, 
     description: `A count of the total number of objects in this connection, ignoring pagination. 
This allows a client to fetch the first five objects by passing "5" as the 
argument to "first", then fetch the total count so it could display "5 of 83", 
for example.` 
    } 
    }) 
}); 

Speranza che aiuta gli altri.

Cheers

+0

Grazie per aver postato questo. Come sei arrivato ad assegnare un valore a connection.totalCount? Ho il mio progetto presentato in modo un po 'diverso e sto avendo problemi a trovare il posto giusto per popolare quel valore – jackncoke

+0

http://stackoverflow.com/questions/38307845/relay-graphql-add-custom-field-to-connection – jackncoke

Problemi correlati