2015-12-10 45 views
6

Używam first i do stronicowania. hasNextPage i hasPreviousPage są bardzo przydatne.Jak przekazać całkowitą liczbę do klienta w pageInfo

Ale potrzebuję również total count, dzięki czemu mogę obliczyć i pokazać takie rzeczy, jak page 5 of 343 pages na kliencie.

Niestety, to nie jest częścią pageInfo, mimo że mam informacje na stronie serwera.

Czy możesz zawierać total pola w pageInfo i przedłużyć connectionFromArray objąć całkowitą arrayLength jak connectionFromArraySlice już robi?

Dzięki

Odpowiedz

11

pageInfo jest przeznaczony do reprezentowania informacji o konkretnej strony, podczas gdy całkowita liczba elementów jest naprawdę własnością samego połączenia. Zalecamy dodanie do połączenia pola count. Możecie zapytać go:

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

Relay obsługuje dowolne pola na połączenia, więc jesteś wolny, aby wymienić ten count, totalCount itp

8

Dziękuję @Joe Savona

Jest całkowita racja. Ponieważ zajęło mi chwilę, aby dowiedzieć się, jak faktycznie dodać obiekt do połączenia na stronie serwera Myślałem, że dzielę się tu również:

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.` 
    } 
    }) 
}); 

nadzieję, że pomoże innym.

Pozdrowienia

+0

Dziękujemy za opublikowanie tego. W jaki sposób przydzieliłeś wartość connection.totalCount? Mój projekt jest trochę inny i mam problem ze znalezieniem odpowiedniego miejsca do wypełnienia tej wartości – jackncoke

+0

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