React w / Apollo&Drupal nodeQuery-如何定义/传递变量?

问题描述 投票:-1回答:1

将GraphQL与React和Drupal一起使用非常有趣,但是很少有文档可以使它们全部协同工作。这个按标签提取文章的nodeQuery效果很好,但是我还没有看到任何定义如何将变量传递给使用gqlClient定义的nodeQuery的示例。我在此查询中放置了变量占位符,但出现错误:

Unhandled Rejection (Error): GraphQL error: Variable "$limit" is not defined.
GraphQL error: Variable "$offset" is not defined.

有人有成功的方法吗?

import gqlClient from "../gqlClient";
import { gql } from "apollo-boost";
export const articleListByTerm = gqlClient.query({
  query: gql`
    {
      nodeQuery(
        limit: $limit
        offset: $offset
        filter: {
          conditions: [
            { operator: EQUAL, field: "type", value: ["article"] }
            { operator: EQUAL, field: "status", value: ["1"] }
            { operator: EQUAL, field: "field_tags.entity.vid", value: ["tags"] }
            {
              operator: EQUAL
              field: "field_tags.entity.name"
              value: ["thiphif"]
            }
          ]
        }
      ) {
        entities {
          entityLabel
          entityBundle
          ... on NodeArticle {
            body {
              value
            }
            fieldImage {
              url
            }
            queryFieldTags {
              entities {
                entityId
                entityLabel
              }
            }
          }
        }
      }
    }
  `,
});

以下是查询的调用方式。您可以看到我正在尝试传递变量,希望它们会起作用但没有运气。

articleListByTerm({
      variables: { offset: 0, limit: 10 },
    }).then(({ data }) =>
      dispatch(receivePostsByTerm(data.nodeQuery.entities))
    );
graphql drupal-8 react-apollo apollo-client
1个回答
0
投票

好吧-我找到了答案:

import gqlClient from "../gqlClient";
import { gql } from "apollo-boost";
let limit = 10;
let offset = 0;
let type = "article";

export const articleListByTerm = gqlClient.query({
  variables: { limit: limit, offset: offset, type: type },
  query: gql`
    query($limit: Int!, $offset: Int!, $type: String!) {
      nodeQuery(
        limit: $limit
        offset: $offset
        filter: {  .... etc ...

我希望这对某人有帮助。绝对可以帮助我。我添加了一个字符串!该变量对示例也有帮助。 IDK(如果可以执行数组)。这是一个非常简单的解决方案,只是没有在任何地方进行记录。我点点滴滴地猜测,最后弄清楚了。

© www.soinside.com 2019 - 2024. All rights reserved.