2015-12-10 12 views
6

Tôi sử dụng firstafterlastbefore để thực hiện phân trang. hasNextPagehasPreviousPage rất hữu ích.Cách chuyển tổng số cho khách hàng trong pageInfo

Nhưng những gì tôi cần cũng là total count để tôi có thể tính toán và hiển thị những thứ như page 5 of 343 pages trên máy khách.

Rất tiếc, không phải là một phần của pageInfo mặc dù tôi có thông tin trên trang web của máy chủ.

bạn có thể vui lòng bao gồm một lĩnh vực total trong pageInfo và mở rộng connectionFromArray lấy trong tổng arrayLength như connectionFromArraySlice đã thực hiện?

Cảm ơn

Trả lời

11

pageInfo được thiết kế để đại diện cho thông tin về các trang cụ thể, trong khi tổng số các mặt hàng thực sự là một tài sản của các kết nối riêng của mình. Chúng tôi khuyên bạn nên thêm trường count vào kết nối. Bạn có thể truy vấn nó với:

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

Tiếp hỗ trợ các lĩnh vực tùy ý trên một kết nối, vì vậy bạn đang miễn phí để tên này count, totalCount vv

8

Cảm ơn bạn @Joe Savona

Ông là hoàn toàn đúng. Vì nó đã cho tôi một chút thời gian để tìm ra cách để thực sự thêm thuộc tính vào các kết nối trên các trang web máy chủ tôi nghĩ rằng tôi chia sẻ rằng đây cũng như:

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

Hy vọng rằng sẽ giúp những người khác.

Chúc mừng

+0

Cảm ơn bạn đã đăng bài này. Làm thế nào bạn đã đi về việc gán một giá trị cho connection.totalCount? Tôi có dự án của tôi đặt ra một chút khác nhau và tôi đang gặp khó khăn khi tìm đúng nơi để điền giá trị đó – jackncoke

+0

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

Các vấn đề liên quan