javascript - 在 React 组件 GraphQL 查询中使用 GraphQL 上下文变量
问题描述
我正在尝试在我的 React 组件中构建一个 GraphQL 查询,我需要限制返回的结果数量。我在 gatsby-node.js 文件中的“createPage”函数的“context”属性中设置了限制值。
在我的 React 组件中,我可以看到 limit 属性是通过“props.pageContext.limit”传入的。我需要获取这个限制值并将其传递给我的 React 组件底部的 GraphQL 查询
以下是我尝试过的,但它不起作用,如果我从查询中省略限制值,那么它会返回所有结果。
//gatsby-node.js
...
const postsPerPage = 3;
createPage({
path: node.fields.slug,
component: path.resolve("./src/templates/page.js"),
context: {
limit: postsPerPage,
slug: node.fields.slug,
category: node.frontmatter.category
}
});
...
//my-component.js
...
export const query = graphql`
query($limit: Int!, $slug: String!) {
markdownRemark(fields: { slug: { eq: $slug } }) {
html
frontmatter {
category
}
}
allMarkdownRemark(limit: $limit) {
edges {
node {
frontmatter {
title
excerpt
}
fields {
slug
}
}
}
}
}
`
解决方案
推荐阅读
- php - 为什么我的登录仅在这些特定情况下有效?
- ios - SwiftUI | 使用 LazyVGrid 拖放?
- python - Matplotlib:当没有实际标签时如何隐藏/删除颜色条的刻度?
- json - 如何将对象数组保存到 DTO 类中
- exe - Shiboken2 ... ImportError:DLL加载失败:找不到指定的程序
- javascript - javascript中带有选择框的搜索栏
- while-loop - 如何在控制器中运行多次,直到我得到结果代码
- node.js - 在 Mongodb 中使用 Nodejs 和多个数据库连接开发 REST API
- c# - 我希望while循环中的第二个条件在第一个条件完成并执行后执行
- debugging - 用于跟踪库 API 的 Solaris 工具