将第一个查询结果用作第二个查询的条件

时间:2020-11-06 09:07:55

标签: graphql

我有2个这样的查询

const featuredArticles = gql `
query featureArticles() {
  articles(where: {limit: 4, feature: true, sort: "published_at:desc") {
    id
  }
}
`;
const NO_FEATURE_ARTICLES_QUERY = gql`
query noFeatureArticles($slug: String!) {
  articles(where: { id_nin: ??? },limit: 4, sort: "published_at:desc") {
    ${SINGLE_ARTICLE_MODEL}
  }
}
`;

第一个查询将获取4个最新特色文章的ID,第二个查询将获取数据库中所有可用的文章。现在,我试图更改第二个查询,以获取除第一个查询中的4篇文章以外的所有文章,但我只是不知道如何将结果用作条件。你们能给我一些提示吗?预先感谢!

1 个答案:

答案 0 :(得分:0)

我的index.jsx看起来像这样:

const Home = () => (
  <div style={{
    overflowX: 'hidden',
  }}
  >
    let arr=[]
    <Query query={FEATURE_ARTICLES_QUERY}>
      {({ data: { articles } }) => {
        if (!articles.length) {
          return null;
        }
        arr=[articles[0].id,.......,articles[10].id];
        return <SectionFeature articles={articles} />;
      }}
    </Query>
    <Query query={ARTICLES_QUERY} id={arr}>
      {({ data: { quotes } }) => {
        if (!quotes.length) {
          return null;
        }
        return <SectionQuote quotes={quotes} />;
      }}
    </Query>
  </div>
);

export default Home;

例如,我想将第一个查询的结果传递给arr [],然后将其传递给第二个查询。但是数组将在第一个查询结束后消失。

更新:我已经做到了。非常感谢您的提示