首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何连续调用graphql?react-apollo

如何连续调用graphql?react-apollo
EN

Stack Overflow用户
提问于 2017-12-13 21:57:16
回答 1查看 118关注 0票数 0

我正在用react-apollo在一个hoc中组合两个查询。下面是我的代码:

代码语言:javascript
复制
let queries = compose(
  graphql(gql`
    query getUnitSubcategories($input: UnitSubcategorySearchInput) {
      allUnitSubcategories(input:$input) {
        edges {
          node {
            unitSubcategoryId
          }
        }
      }
    }
  `, {
    name: 'subcategories',
    options: {
      variables: {
        input: {
          activeFlag: true,
        }
      }
    }
  }),
  graphql(gql`
    query getFinancialTransactions($input: FinancialTransactionLineSearchInput) {
      allFinancialTransactionLines(input: $input) {
        pageInfo {
          total
        }
        edges {
          node {
            financialTransaction {
              financialTransactionId
            }
          }
        }
      }
    }
  `, {
    name: 'financialTransactions',
    options: {
      variables: {
        input: {
          unitSubcategories: [
            ....
          ]
        }
      }
    }
  })
);

您可以看到,我在第一个查询中获得了unitSubcategories,它们需要传递给第二个查询。因此,在得到第一个查询的结果之前,我不想启动第二个查询。做这件事最好的方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2017-12-14 15:47:41

您将需要使用skip配置。请参阅https://www.apollographql.com/docs/react/basics/queries.html#graphql-skip

在您的示例中,您可能希望在第二个查询中定义skip配置,如下所示:

代码语言:javascript
复制
{
  name: 'financialTransactions',
  skip: ({ unitSubcategories }) => !unitSubcategories,
  options: ({ unitSubcategories }) => ({
    variables: {
      input: {
        unitSubcategories
      }
    }
  })
}

其中,您只希望在收到第一个查询的结果后运行第二个查询。然后使用options作为函数,这样就可以从props计算它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47794776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档