Gatsby-对内容查询进行动态查询

时间:2019-12-09 11:09:32

标签: graphql gatsby contentful

我正在基于GatsbyContentful进行简单的电子商务。 我的页面之一是CartPage。 因此,我试图对Contenful进行查询,以获取有关我的产品的必要信息,因此我想传递用户购物车中产品ID的列表。

这是我的组件和查询:

export interface CartPageProps {
  data: {
    products: GQL.ContentfulProductConnection;
  };
}

const CartPage = ({ data }: CartPageProps) => {

  const mockCart = [1, 2];
  console.log(data);

   return (
    <IndexLayout>
      <Page>
      //
      // Layout goes here
      //
      </Page>
    </IndexLayout>
    )
}
export default CartPage;

const pageQuery = graphql`
  query ProductsInCart($mockCart: [Int], $lang: String) {
    products: allContentfulProduct(filter: { idProduct: { in: [1, 2] }, node_locale: { eq: "en" } }) {
      edges {
        node {
          id
          idProduct
          price
          title
          quantity
          photo {
            resize(height: 200, width: 200) {
              src
            }
          }
          slug
        }
      }
    }
  }
`;

现在我在console.log(data)上遇到的是undefined

如果我执行相同的查询,但使用useStaticQuery且所有数据都进行了硬编码-我将获得所需的数据。但是useStaticQuery不接受变量。

我在这里做错什么了吗?如何将变量传递给查询并将数据传递给道具?

1 个答案:

答案 0 :(得分:0)

Gatsby在构建时使用GraphQL,而不用于实时站点。如here所述,因此它并非旨在随时随地进行GraphQL查询。