Gatsby GraphiQL排序导致错误“;无法读取属性';地图';“未定义”的定义;

Gatsby GraphiQL排序导致错误“;无法读取属性';地图';“未定义”的定义;,gatsby,Gatsby,我使用GraphiQL中的查询从CMS的Strapi中提取数据。一切正常,如下所示: query MyQuery { allStrapiPortfolioPages { nodes { order } } } query MyQuery { allStrapiPortfolioPages(sort: {order: ASC}) { nodes { order } } } 答复如下: { "data"

我使用GraphiQL中的查询从CMS的Strapi中提取数据。一切正常,如下所示:

query MyQuery {
  allStrapiPortfolioPages {
    nodes {
      order
    }
  }
}
query MyQuery {
  allStrapiPortfolioPages(sort: {order: ASC}) {
    nodes {
      order
    }
  }
}
答复如下:

{
  "data": {
    "allStrapiPortfolioPages": {
      "nodes": [
        {
          "order": 1
        },
        {
          "order": 2
        },
        {
          "order": 3
        }
      ]
    }
  },
  "extensions": {}
}
我尝试将数据分类如下:

query MyQuery {
  allStrapiPortfolioPages {
    nodes {
      order
    }
  }
}
query MyQuery {
  allStrapiPortfolioPages(sort: {order: ASC}) {
    nodes {
      order
    }
  }
}
这将导致消息错误:“无法读取未定义的属性‘map’”


如何在查询中对这些节点进行排序?

您的查询应该如下所示:

query MyQuery {
  allStrapiPortfolioPages(
    sort: {
      fields: [order]
      order: ASC
    }) {
    nodes {
      order
    }
  }
}
请注意,您缺少该字段(
order
)。在您的例子中,这有点棘手,因为名称本身是在GraphQL中对查询排序的方式,但一般来说,您必须提供字段和排序顺序

如需进一步参考,请查看