GRIDSOME запрос нумерации страниц - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь разбить запрос на Gridsome.

query Posts ($page: Int) {
  posts: allPost (perPage: 10, page: $page) @paginate {
    totalCount
    pageInfo {
      totalPages
      currentPage
      totalItems
      isFirst
      isLast
    }
    edges {
      node {
        title
      }
    }
  }
}

Ответ, который я получаю, показывает мои первые 10 сообщений, но отображает totalPages как 1.

"data": {
    "posts": {
      "totalCount": 1333,
      "pageInfo": {
        "totalPages": 1,
        "currentPage": 1,
        "totalItems": 10,
        "isFirst": true,
        "isLast": true
      }
...

Чего мне не хватает?

Спасибо.

1 Ответ

0 голосов
/ 08 февраля 2020

Вы должны открыть вопрос Github об этом топи c. https://github.com/gridsome/gridsome/issues

Пример (7 сообщений)

Похоже, что вывод "правильный" только на static query:

{
  allPost (perPage: 2, page: 3){
    pageInfo {
      totalPages
      currentPage
    }
    edges{
      node{
        title
      }
    }
  }
}

Возвращает :

{
  "data": {
    "allPost": {
      "pageInfo": {
        "totalPages": 4,
        "currentPage": 3
      },
      "edges": [
        {
          "node": {
            "title": "Portal"
          }
        },
        {
          "node": {
            "title": "Dev Landing Page"
          }
        }
      ]
    }
  }
}


page-query Я также проверяю эту идею - под openGraph детская площадка значение всегда 1

enter image description here

Если вы примените Query Variables, вывод будет правильным: enter image description here

И , когда вы oop сгенерируете эту коллекцию, вывод все в порядке ( 7 элементов - по 3 на страницу = 3 страницы ) + все работает как надо (номера страниц и стрелки нажимаются):

Код enter image description here

<!-- src/pages/test.vue -->
<template>
  <Layout>
    <ul>
     <li v-for="edge in $page.posts.edges" :key="edge.node.id">
       {{ edge.node.title }}
     </li>
   </ul>
   <Pager :info="$page.posts.pageInfo"/>

  </Layout>
</template>

<script>
import { Pager } from 'gridsome'

export default {
  components: {
    Pager
  }
}
</script>

<page-query>
  query Posts ($page: Int) {
    posts: allPost (perPage: 3, page: $page) @paginate {
      totalCount
        pageInfo {
          totalPages
          currentPage
      }
      edges {
        node {
          title
        }
      }
    }
  }
</page-query>

...