我正在用react-apollo在一个hoc中组合两个查询。下面是我的代码:
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,它们需要传递给第二个查询。因此,在得到第一个查询的结果之前,我不想启动第二个查询。做这件事最好的方法是什么?
发布于 2017-12-14 15:47:41
您将需要使用skip配置。请参阅https://www.apollographql.com/docs/react/basics/queries.html#graphql-skip
在您的示例中,您可能希望在第二个查询中定义skip配置,如下所示:
{
name: 'financialTransactions',
skip: ({ unitSubcategories }) => !unitSubcategories,
options: ({ unitSubcategories }) => ({
variables: {
input: {
unitSubcategories
}
}
})
}其中,您只希望在收到第一个查询的结果后运行第二个查询。然后使用options作为函数,这样就可以从props计算它们。
https://stackoverflow.com/questions/47794776
复制相似问题