Попытка сортировки графикаQL по позиции с помощью DatoCMS и Gatsby JS - PullRequest
0 голосов
/ 05 января 2020

Я использую этот плагин Gatsby JS для изучения DatoCMS GraphQL API https://github.com/datocms/gatsby-source-datocms В документах dato говорится, что вы можете заказывать по позициям в cms https://www.datocms.com/docs/content-delivery-api/ordering/

Я в основном хочу сохранить порядок в cms, а не иметь порядок, основанный на дате.

В dato API Explorer я могу упорядочить записи по позициям, например, так.

query MyQuery {
  allProjects(orderBy: position_ASC) {
    slug
  }
}

Однако в Gatsby тот же самый запрос намекает на то, что я пробовал что-то подобное ниже, но он дает мне это error Expected type SortOrderEnum, found position_ASC

query MyQuery {
  allDatoCmsProject(sort: {order: position_ASC}) {
    edges {
      node {
        slug
      }
    }
  }
}

В плагине gatsby синтаксис немного отличается от DQL-CMS GraphQL Explorer это то, как плагин ожидает от меня выполнения моего заказа, если я хочу упорядочить его по определенному полю. Однако я не могу найти поле, которое позволило бы мне упорядочить по положению элементов в Dato cms

{
  allDatoCmsBlogPost(sort: { fields: [publicationDate], order: DESC }, limit: 5) {
    edges {
      node {
        title
        excerpt
        publicationDate(formatString: "MM-DD-YYYY")
        author {
          name
          avatar {
            url
          }
        }
      }
    }
  }
}

Ответы [ 2 ]

1 голос
/ 07 января 2020

Из README gatsby-source-datocms :

ВАЖНО: Если вы используете этот плагин, вы не сможете писать запросы, как описано в разделе Доставка контента DatoCMS. API документация. Контент будет отображаться с использованием схемы Gatsby. Если вы хотите напрямую использовать наш API GraphQL в Gatsby, рассмотрите возможность использования плагина gatsby-source-graphql.

0 голосов
/ 07 января 2020

Получается, что есть поле позиции, из которого я могу заказать. Вот что получилось:

allDatoCmsProject(sort: { fields: [position], order: ASC }){
...
}
...