0

我试图弄清楚如何通过 id 从 graphql 模式中查询单个用户。我正在使用 graphiql 工具,并且能够获取所有用户。

{
    allPrismicUsers {
      edges {
        node {
          id
        data {
          name
        }
        }
      }
    }
}

输出:

{
  "data": {
    "allPrismicUsers”: {
      "edges": [
        {
          "node": {
            "id": "Prismic__User__WzKFwywAABmiZk_4",
            "data": {
              "name": “John Doe”
            }
          }
        },
        {
          "node": {
            "id": "Prismic__User__WzKDZywAABmiZkYp",
            "data": {
              "name": “Jane Doe“
            }
          }
        },
        {
          "node": {
            "id": "Prismic__User__WzKGDiwAAJSiZlFL",
            "data": {
              "name": “Cat Doe”
            }
          }
        }
      ]
    }
  }
}

我在架构上也有 prismicUser()

query {
  prismicUser {
    id
    data {
      name
    }
  }
}

输出:

{
  "data": {
    "prismicUser": {
      "id": "Prismic__User__WzKGDiwAAJSiZlFL",
      "data": {
        "name": "Cat Doe"
      }
    }
  }
}

我正在尝试根据特定 id 查询用户,但不确定我是否以错误的方式查询。我试过这个。

query {
  prismicLocation(id: "Prismic__User__WzKDZywAABmiZkYp") {
    data {
      name
    }
  }
}

我收到一个错误

{ "errors": [ { "message": "Argument \"id\" has invalid value \"Prismic__User__WzKDZywAABmiZkYp\".\n预期 \"prismicUserIdQueryString_2\",找不到对象。", "users": [ { "line ": 25, "列": 23 } ] } ] }

如何根据他们的 id 呼叫特定用户?

4

1 回答 1

0

根据Gatsby GraphQL 参考,Gatsby 允许您按 GraphQL 中的任何字段过滤结果(使用运算符,如eq,ne等)

gatsby-source-prismic插件提供了一个名为prismicId(ie W1syKSIAAAzdN1Jg) 的字段。

这是一个示例查询:

{
  prismicUser(prismicId:{eq:"WzKDZywAABmiZkYp"}) {
    data {
      name
    }
  }
}

但您也可以通过以下方式查询id

prismicUser(id:{eq:"Prismic__User__WzKDZywAABmiZkYp"})
于 2018-08-21T09:28:44.253 回答